프로그래머스에서 처음 풀 문제를 고를 때 가장 많이 하는 실수

많이 푸는 것보다, 계속 풀 수 있는 난이도를 먼저 잡아야 하는 이유
지난 글에서 프로그래머스 풀이를 GitHub에 자동으로 남기는 방법을 정리했다면,
이번에는 그 다음 질문으로 넘어가보려 합니다.
그래서 프로그래머스에서는 처음에 어떤 문제부터 풀어야 할까?
알고리즘 공부를 막 시작하면 보통 비슷한 흐름을 겪습니다.
- 뭘 풀어야 할지 몰라서 일단 유명한 문제부터 들어간다
- 고득점 Kit가 눈에 띄어서 제일 어려워 보이는 유형에 손이 간다
- 한 문제를 몇 시간 붙잡고 있다가 진이 빠진다
- 쉬운 문제는 의미 없을 것 같아서 자꾸 미룬다
- 결국 며칠 하다가 “알고리즘은 나랑 안 맞나?” 싶어진다
그런데 많은 경우 문제는 실력이 아니라 문제 선택 순서에 있습니다.
처음 알고리즘 공부가 오래 가지 않는 이유는
머리가 부족해서가 아니라,
지금 내 수준보다 약간만 어려운 문제를 꾸준히 고르는 감각이 아직 없기 때문입니다.
이번 글에서는
프로그래머스 입문자가 가장 많이 하는 문제 선택 실수와,
처음에는 어떤 순서로 접근하면 훨씬 덜 지치고 오래 갈 수 있는지를 정리해보겠습니다.
TL;DR
- 처음부터 고득점 Kit의 어려운 문제만 붙잡는 방식은 생각보다 빨리 지치게 만든다.
- 한 문제를 너무 오래 붙잡으면 실력이 느는 게 아니라 공부 리듬이 무너질 수 있다.
- 쉬운 문제를 푸는 건 낭비가 아니라, 패턴을 익히고 자신감을 만드는 가장 빠른 길이다.
- 처음에는 “최고 난도 문제”보다 내가 20~40분 안에 도전해볼 수 있는 난이도를 찾는 게 더 중요하다.
- 입문자라면 쉬운 문제 → 익숙한 유형 → 고득점 Kit 순서로 올라가는 쪽이 훨씬 오래 간다.
왜 처음엔 문제를 “많이” 푸는 것보다 “계속” 푸는 게 중요할까
알고리즘 공부는 단기간에 폭발적으로 느는 공부가 아닙니다.
오히려 조금씩 반복하면서 문제를 보는 눈이 바뀌는 쪽에 가깝습니다.
그래서 처음에는
“오늘 몇 문제를 풀었는가”보다
“이번 주에도 계속 풀 수 있겠는가”가 더 중요합니다.
많은 입문자가 여기서 첫 번째 함정에 빠집니다.
문제를 고를 때
“제일 유명한 문제”,
“제일 어려워 보이는 문제”,
“남들이 많이 푸는 문제”를 먼저 고릅니다.
그런데 입문 단계에서는
좋은 문제보다 좋은 난이도 선택이 더 중요합니다.
내 수준보다 너무 어려운 문제는
생각하는 힘을 키우기 전에
공부 자체를 버겁게 만들어버리기 쉽기 때문입니다.
실수 1. 처음부터 고득점 Kit의 어려운 문제만 붙잡기
프로그래머스를 처음 들어가면
고득점 Kit가 눈에 잘 들어옵니다.
이름도 강하고,
유형별로 잘 정리되어 있어서
“이거부터 하면 되는 거 아닌가?” 싶어집니다.
틀린 생각은 아닙니다.
다만 처음부터 어려운 문제를 중심으로 들어가는 건 위험할 수 있습니다.
왜냐하면 고득점 Kit는
문제를 푸는 습관이 아직 없는 사람보다
이미 어느 정도 문제 풀이 감각이 있는 사람에게 더 잘 맞는 구조이기 때문입니다.
특히 처음부터 이런 식으로 가면 힘들어집니다.
- 해시/정렬 정도는 괜찮은데 갑자기 어려운 유형으로 점프하기
- 한 문제를 풀기 전에 필요한 기본 문법이나 사고 흐름이 부족한 상태에서 붙잡기
- “이걸 못 푸는 걸 보니 나는 알고리즘이 안 맞나?”라고 오해하기
문제는 고득점 Kit 자체가 아니라,
들어가는 시점입니다.
처음에는 고득점 Kit를
“당장 정복해야 할 코스”가 아니라
조금 익숙해진 뒤 본격적으로 구조화해서 풀어볼 코스 정도로 생각하는 편이 좋습니다.

실수 2. 한 문제를 너무 오래 붙잡기
알고리즘 공부에서 자주 생기는 두 번째 실수는
한 문제에 너무 오래 머무는 것입니다.
물론 오래 생각하는 건 중요합니다.
문제를 금방 포기하는 습관도 좋지 않습니다.
그런데 입문 단계에서는
“끝까지 혼자 풀어내야만 공부가 된다”는 생각이
오히려 독이 될 때가 많습니다.
예를 들어 이런 식입니다.
- 문제를 읽고 10분째 이해가 안 되는데 계속 붙잡는다
- 30분이 넘어도 접근 방향이 안 보이는데 억지로 버틴다
- 결국 1~2시간이 지나고도 못 풀어서 기분만 나빠진다
- 다음 날 문제를 열기 싫어진다
이건 끈기가 부족해서가 아니라
학습 리듬이 무너진 상태에 가깝습니다.
처음에는 한 문제에 이렇게 기준을 두는 편이 좋습니다.
입문자 기준 추천 시간 감각
- 10분: 문제 이해 + 예제 직접 손으로 써보기
- 20~30분: 스스로 풀이 방향을 고민해보기
- 30~40분 이후: 그래도 방향이 안 잡히면 해설이나 힌트를 참고하기
중요한 건
“혼자 무조건 끝까지 버티기”가 아니라
생각한 뒤, 막히면 배우고, 다시 비슷한 문제에 적용하는 것입니다.
알고리즘은 버티는 공부이기도 하지만,
동시에 패턴을 흡수하는 공부이기도 합니다.

실수 3. 쉬운 문제를 푸는 건 의미 없다고 생각하기
이건 정말 많이 하는 착각입니다.
“쉬운 문제를 몇 개 푼다고 실력이 늘까?”
“어차피 코딩테스트는 어렵게 나오는데, 쉬운 문제는 시간 낭비 아닌가?”
이런 생각이 자주 듭니다.
그런데 실제로는 반대입니다.
쉬운 문제는
실력이 없어서 푸는 문제가 아니라,
실력을 쌓기 위해 꼭 거쳐야 하는 문제입니다.
쉬운 문제의 역할은 생각보다 큽니다.
- 프로그래머스 인터페이스에 익숙해진다
- 입력/출력보다 로직 중심 문제에 익숙해진다
- 배열, 문자열, 반복문, 조건문 조합이 손에 붙기 시작한다
- “이런 패턴은 이렇게 푸는구나”라는 감각이 생긴다
- 무엇보다 맞힐 수 있다는 경험이 쌓인다
처음부터 어려운 문제만 풀면
“나는 못 한다”는 기억만 쌓입니다.
반대로 쉬운 문제를 적절히 풀면
“아, 이런 류는 내가 할 수 있네”라는 감각이 생기고,
그 감각이 다음 문제를 열게 만듭니다.
즉, 쉬운 문제는 쉬워서 가치가 낮은 게 아니라
다음 단계로 넘어가기 위한 발판 역할을 합니다.

그럼 “지금 내 수준에서 계속 풀 수 있는 난이도”는 어떻게 찾을까
이게 제일 중요합니다.
처음에는 최고 난도를 뚫는 것보다
내가 계속 공부할 수 있는 구간을 찾는 게 먼저입니다.
너무 쉬우면 지루하고,
너무 어려우면 금방 지칩니다.
그래서 처음에는 아래 기준으로 난이도를 가늠해보면 좋습니다.
지금 내 수준에 맞는 문제의 기준
- 문제를 읽고 무슨 뜻인지는 이해된다
- 예제를 보고 어떤 식으로 접근할지 감이 아주 조금은 온다
- 20~30분 정도 생각해볼 수 있다
- 완벽히 못 풀더라도 해설을 보면 “아, 이 생각이었구나” 하고 따라간다
- 비슷한 문제를 다시 만나면 한 번은 도전해볼 수 있을 것 같다
반대로 아직 너무 어려운 문제는 대개 이렇습니다.
- 문제 설명을 읽어도 뭘 요구하는지부터 अस्पष्ट하다
- 예시를 봐도 왜 저 출력이 나오는지 잘 모르겠다
- 해설을 봐도 아이디어가 갑자기 튀어나온 느낌이다
- 풀고 나서도 비슷한 유형을 또 못 풀 것 같다
처음엔 이 구분이 잘 안 됩니다.
그래서 더더욱 쉬운 문제부터 쌓으면서
“어디까지는 내가 생각해볼 수 있고, 어디부터는 아직 멀다”를 알아가는 과정이 필요합니다.
입문자가 프로그래머스를 볼 때 추천 순서
프로그래머스를 처음 보는 사람에게는
저는 보통 이렇게 권하고 싶습니다.
1단계. 아주 쉬운 문제로 플랫폼에 익숙해지기
먼저 중요한 건
프로그래머스에서 문제를 읽고, 제출하고, 다시 보는 흐름에 익숙해지는 것입니다.
이 단계에서는
“실력을 증명하는 문제”보다
문제를 푸는 습관을 만드는 문제가 더 중요합니다.
추천 포인트:
- 풀이 시간이 너무 길지 않은 문제
- 배열, 문자열, 구현 중심 문제
- 정답 맞히는 경험을 빠르게 쌓을 수 있는 문제
2단계. 자주 나오는 기본 유형에 익숙해지기
그 다음에는
반복해서 등장하는 유형을 만나보는 게 좋습니다.
예를 들면
- 문자열 처리
- 배열/정렬
- 해시 기초
- 스택/큐 기초
- 완전탐색 기초
이 단계에서는
“문제를 처음 보는 감각”보다
비슷한 구조를 여러 번 만나보는 경험이 중요합니다.
3단계. 그 뒤에 고득점 Kit로 정리하기
고득점 Kit는 그다음입니다.
이 시점에는
- 내가 어떤 유형에서 자주 막히는지 조금 보이고
- 유형 이름이 낯설지 않고
- 같은 카테고리 문제를 묶어서 보는 의미가 생깁니다
즉, 고득점 Kit는
처음부터 정면 돌파할 곳이라기보다
어느 정도 익숙해진 뒤 실력을 구조화하는 단계에 더 가깝습니다.

처음 시작할 때 추천하는 현실적인 공부 방식
처음부터 완벽하게 하려고 하면 오래 못 갑니다.
그래서 저는 오히려 이렇게 단순하게 시작하는 쪽을 추천합니다.
가장 무난한 시작
- 하루에 문제를 많이 풀려고 하지 않는다
- 쉬운 문제 1개를 먼저 푼다
- 30~40분 안에 안 풀리면 해설을 참고한다
- 맞힌 문제도 한 줄 정도는 기록한다
- 다음 날 비슷한 난이도의 문제를 다시 푼다
이 방식의 장점은
실력이 빨리 느는 것보다 먼저
문제를 여는 습관이 생긴다는 데 있습니다.
그리고 알고리즘 공부는
이 습관이 붙고 나서부터 비로소 누적이 시작됩니다.

정리해보면, 처음엔 “어려운 문제를 푸는 사람”보다 “계속 문제를 푸는 사람”이 이긴다
처음 프로그래머스를 시작할 때 가장 많이 하는 실수는
실력이 부족한 게 아니라,
문제를 너무 어렵게 고르는 것입니다.
- 처음부터 고득점 Kit 어려운 문제만 붙잡고
- 한 문제를 너무 오래 붙잡고
- 쉬운 문제는 의미 없다고 생각하고
- 결국 문제 푸는 습관 자체를 잃어버립니다
그런데 알고리즘은
재능보다 먼저 리듬이 중요합니다.
오늘도 문제를 열고,
생각해보고,
막히면 배우고,
비슷한 문제를 다시 풀어보는 흐름.
이 흐름이 쌓이면
쉬운 문제를 푸는 사람도
결국 어려운 문제를 풀 수 있게 됩니다.
반대로 이 흐름이 없으면
어려운 문제를 오래 붙잡아도
공부가 자꾸 끊기기 쉽습니다.
마무리
알고리즘 공부를 시작할 때
가장 먼저 필요한 건 어려운 문제를 뚫는 힘보다
내가 계속 풀 수 있는 난이도를 고르는 감각입니다.
처음에는 쉬운 문제를 푸는 것이 부족해 보일 수도 있습니다.
하지만 실제로는 그 쉬운 문제들이
문제를 읽는 힘,
접근하는 힘,
패턴을 보는 힘,
그리고 무엇보다 계속할 힘을 만들어줍니다.
프로그래머스를 처음 시작했다면
무조건 어려운 문제부터 붙잡기보다,
내가 20~40분 정도 고민해볼 수 있는 문제를 꾸준히 고르는 것부터 시작해보면 좋겠습니다.
실력은 생각보다
한 번의 정답보다
계속 문제를 여는 습관에서 더 크게 만들어지니까요.




