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

댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요!
지난 글에서 프로그래머스 풀이를 GitHub에 자동으로 남기는 방법을 정리했다면,
이번에는 그 다음 질문으로 넘어가보려 합니다.
그래서 프로그래머스에서는 처음에 어떤 문제부터 풀어야 할까?
알고리즘 공부를 막 시작하면 보통 비슷한 흐름을 겪습니다.
그런데 많은 경우 문제는 실력이 아니라 문제 선택 순서에 있습니다.
처음 알고리즘 공부가 오래 가지 않는 이유는
머리가 부족해서가 아니라,
지금 내 수준보다 약간만 어려운 문제를 꾸준히 고르는 감각이 아직 없기 때문입니다.
이번 글에서는
프로그래머스 입문자가 가장 많이 하는 문제 선택 실수와,
처음에는 어떤 순서로 접근하면 훨씬 덜 지치고 오래 갈 수 있는지를 정리해보겠습니다.
알고리즘 공부는 단기간에 폭발적으로 느는 공부가 아닙니다.
오히려 조금씩 반복하면서 문제를 보는 눈이 바뀌는 쪽에 가깝습니다.
그래서 처음에는
“오늘 몇 문제를 풀었는가”보다
**“이번 주에도 계속 풀 수 있겠는가”**가 더 중요합니다.
많은 입문자가 여기서 첫 번째 함정에 빠집니다.
문제를 고를 때
“제일 유명한 문제”,
“제일 어려워 보이는 문제”,
“남들이 많이 푸는 문제”를 먼저 고릅니다.
그런데 입문 단계에서는
좋은 문제보다 좋은 난이도 선택이 더 중요합니다.
내 수준보다 너무 어려운 문제는
생각하는 힘을 키우기 전에
공부 자체를 버겁게 만들어버리기 쉽기 때문입니다.
프로그래머스를 처음 들어가면
고득점 Kit가 눈에 잘 들어옵니다.
이름도 강하고,
유형별로 잘 정리되어 있어서
“이거부터 하면 되는 거 아닌가?” 싶어집니다.
틀린 생각은 아닙니다.
다만 처음부터 어려운 문제를 중심으로 들어가는 건 위험할 수 있습니다.
왜냐하면 고득점 Kit는
문제를 푸는 습관이 아직 없는 사람보다
이미 어느 정도 문제 풀이 감각이 있는 사람에게 더 잘 맞는 구조이기 때문입니다.
특히 처음부터 이런 식으로 가면 힘들어집니다.
문제는 고득점 Kit 자체가 아니라,
들어가는 시점입니다.
처음에는 고득점 Kit를
“당장 정복해야 할 코스”가 아니라
조금 익숙해진 뒤 본격적으로 구조화해서 풀어볼 코스 정도로 생각하는 편이 좋습니다.

알고리즘 공부에서 자주 생기는 두 번째 실수는
한 문제에 너무 오래 머무는 것입니다.
물론 오래 생각하는 건 중요합니다.
문제를 금방 포기하는 습관도 좋지 않습니다.
그런데 입문 단계에서는
“끝까지 혼자 풀어내야만 공부가 된다”는 생각이
오히려 독이 될 때가 많습니다.
예를 들어 이런 식입니다.
이건 끈기가 부족해서가 아니라
학습 리듬이 무너진 상태에 가깝습니다.
처음에는 한 문제에 이렇게 기준을 두는 편이 좋습니다.
중요한 건
“혼자 무조건 끝까지 버티기”가 아니라
생각한 뒤, 막히면 배우고, 다시 비슷한 문제에 적용하는 것입니다.
알고리즘은 버티는 공부이기도 하지만,
동시에 패턴을 흡수하는 공부이기도 합니다.

이건 정말 많이 하는 착각입니다.
“쉬운 문제를 몇 개 푼다고 실력이 늘까?”
“어차피 코딩테스트는 어렵게 나오는데, 쉬운 문제는 시간 낭비 아닌가?”
이런 생각이 자주 듭니다.
그런데 실제로는 반대입니다.
쉬운 문제는
실력이 없어서 푸는 문제가 아니라,
실력을 쌓기 위해 꼭 거쳐야 하는 문제입니다.
쉬운 문제의 역할은 생각보다 큽니다.
처음부터 어려운 문제만 풀면
“나는 못 한다”는 기억만 쌓입니다.
반대로 쉬운 문제를 적절히 풀면
“아, 이런 류는 내가 할 수 있네”라는 감각이 생기고,
그 감각이 다음 문제를 열게 만듭니다.
즉, 쉬운 문제는 쉬워서 가치가 낮은 게 아니라
다음 단계로 넘어가기 위한 발판 역할을 합니다.

이게 제일 중요합니다.
처음에는 최고 난도를 뚫는 것보다
내가 계속 공부할 수 있는 구간을 찾는 게 먼저입니다.
너무 쉬우면 지루하고,
너무 어려우면 금방 지칩니다.
그래서 처음에는 아래 기준으로 난이도를 가늠해보면 좋습니다.
반대로 아직 너무 어려운 문제는 대개 이렇습니다.
처음엔 이 구분이 잘 안 됩니다.
그래서 더더욱 쉬운 문제부터 쌓으면서
“어디까지는 내가 생각해볼 수 있고, 어디부터는 아직 멀다”를 알아가는 과정이 필요합니다.
프로그래머스를 처음 보는 사람에게는
저는 보통 이렇게 권하고 싶습니다.
먼저 중요한 건
프로그래머스에서 문제를 읽고, 제출하고, 다시 보는 흐름에 익숙해지는 것입니다.
이 단계에서는
“실력을 증명하는 문제”보다
문제를 푸는 습관을 만드는 문제가 더 중요합니다.
추천 포인트:
그 다음에는
반복해서 등장하는 유형을 만나보는 게 좋습니다.
예를 들면
이 단계에서는
“문제를 처음 보는 감각”보다
비슷한 구조를 여러 번 만나보는 경험이 중요합니다.
고득점 Kit는 그다음입니다.
이 시점에는
즉, 고득점 Kit는
처음부터 정면 돌파할 곳이라기보다
어느 정도 익숙해진 뒤 실력을 구조화하는 단계에 더 가깝습니다.

처음부터 완벽하게 하려고 하면 오래 못 갑니다.
그래서 저는 오히려 이렇게 단순하게 시작하는 쪽을 추천합니다.
이 방식의 장점은
실력이 빨리 느는 것보다 먼저
문제를 여는 습관이 생긴다는 데 있습니다.
그리고 알고리즘 공부는
이 습관이 붙고 나서부터 비로소 누적이 시작됩니다.

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

문제를 풀고 끝내지 않고, GitHub 기록으로 남기는 가장 쉬운 방법 지난 글에서 기록 환경 이야기를 했다면, 이번 글은 그 다음 단계입니다. 프로그래머스에서 푼 문제를 GitHub에 자동으로 쌓이게 만드는 방법, 바로 백준허브 연동입니다. 알고리즘 공부를 하다 보면 꼭 이런 순간이 옵니다. - 문제는 분명 풀었는데 어디에 정리했는지 모르겠고 - 예전에

알고리즘 공부는 의외로 문제를 푸는 능력보다 먼저, 계속 풀 수 있게 만드는 환경에서 갈립니다. 처음 알고리즘을 시작하면 보통 이렇게 됩니다. - 오늘은 한 문제 풀었다 - 내일은 못 풀었다 - 일주일 뒤에는 뭘 풀었는지 기억도 안 난다 - 몇 문제를 풀었는지, 어디가 약한지도 감이 안 온다 이때 필요한 건 더 독한 의지가 아니라, 공부가 남는 구조를 먼저
XR을 활용한 게임 개발 3기(유니티) 수강생입니다. 곧 수료 하지만 앞으로 이곳에 가끔 저의 개발 경험이 나 지식 기록할까 합니다. 더 나아가 이 사이트가 제 개인위키의 역할을 할 수 있으면 좋겠습니다. 한국 게임 시장을 흔들겠습니다
