프로그래머스 모든 문제 풀기 후기(level1,2)
서론
얼마 전 토스 공채 코딩테스트를 보고 구현 실력이 아직 많이 부족하다는 것을 느끼고, 실전에 가까운 프로그래머스 문제를 풀면서 실전 감각을 쌓기로 했다.
그동안은 백준에서 주로 문제를 풀어왔기 때문에 어떤 문제를 풀지 고민했는데.. SQL문제를 제외한 level1, 2의 문제의 개수가 193개인 것을 보고 ‘충분히 풀만하겠는데..?’ 라는 생각이 들어 다 풀기로 결심했다.
문제를 푸는 순서는 정답률을 기준으로 내림차순으로 정답률이 높은 문제들 부터 풀었다.
초반부(정답률: ~76%, 42문제)
사실 이 초반부가 난이도의 차이가 가장 심한 것 같은데, 초반 30문제 까지는 거의 3줄안으로 코딩이 가능하다. 그래도 대부분은 간단한 구현문제들이라고 말할 수 있을 것 같다. 특별한 알고리즘 지식은 필요없고 문제를 잘 읽고 문법을 어느정도 다룰 수 있으면 풀 수 있을 것이다. 주어진 조건 또한 넉넉하기 때문에 최적의 알고리즘을 어렵게 생각하지 않아도 웬만하면 정답으로 인정이 됐던 것 같다. 기본적인 자료구조, 문자열 다루기 등의 능력을 기를 수 있어서 좋았다.
대표 문제
초중반부(정답률: 75~65%, 38문제)
여기부터는 갈수록 문제의 지문 자체가 더 복잡해진다. 따라서 문제를 조금 더 꼼꼼히 읽고 실수를 하지 않는 것이 중요하다. 이전 문제들은 문제가 간단해서 바로 코드를 썼던 것 같은데 이 때쯤부터는 그래도 한번 생각을 미리 주석으로 적어놓고 풀이 했던 것 같다. 이 때부터는 좀 더 실전을 염두에 두어 30분 제한을 두고 풀었는데 대부분의 문제는 그안에 풀렸던 것 같다. 여기서는 스택과 큐, 딕셔너리 까지는 알고 있어야 풀 수 있을 것 같다. 간단한 DP나 그리디 문제 또한 있으니 이 구간은 어느정도 이론 공부를 하고 푸는 것이 좋을 듯 하다.
대표 문제: 괄호 회전하기?
중후반부(정답률: 64~50%, 45문제)
여기서부터 카카오 문제가 대거 등장한다. 카카오 문제를 처음에 접할 때는 지문의 양에 상당히 당혹스러웠는데 그래도 풀다보면 지문을 잘 이해하고 구현만 해낸다면 정답은 나온다는 믿음은 생기는 것 같다. 카카오 문제가 아니더라도 구현문제들은 간단하지 않고 어느정도의 아이디어가 필요한 문제가 많다. DFS/BFS, 백트래킹 문제들도 자주 나온다.
이전에 30분 잡았던 시간을 1시간으로 넉넉하게 잡고 풀어도 시간안에 안 풀리는 문제가 꽤 있다. 간혹 간단한 구현으로 해결되어 풀고나서 ‘엥? 왤케 쉽게 풀리지’라는 생각이 드는 문제들이 있는데 대부분 level1 문제들이다. 정답률과 난이도는 항상 반비례하지는 않는 것 같다.
사실 이쯤부터는 정답률이 크게 의미가 없는 것 같다.
대표 문제: 전력망 나누기?
후반부(정답률: 49~, 48문제)
앞에서는 구현이나 어렵지만
작성중…