알고리즘 공부 및 코딩테스트 준비를 위해 1월부터 시작한 백준.
나의 3월 초 등급은 Silver 2 이다.
물론 Silver 2 라고 해서 Silver 2 ~ 5 / Bronze 1 ~ 5 의 문제들을 쉽게 풀 수 있는건 아니다.
당장은 없지만 나에겐 필요한 시스템이다.
나는 흔하디 흔한 RPG에 목매는 육성에 눈 먼 자이다.
특히, 등급을 올리는 시스템을 환영한다.
하지만 지금은 등급에 의미가 없는 것은 맞다.
나는 1월 초 ~ 2월 중순까지는 코드를 만드는 방법, 기본적인 구문들로 해결할 수 있는 문제 풀이들을 통해 코딩하는 방법을 익히고 내가 생각하고 만들 수 있도록 시간을 투자하였고
2월 말 ~ 3월 초 현재까지는 큰 단락으로 나누어 브루트 포스, 정렬, 스택, 큐 와 같은 새로운 유형의 알고리즘 및 자료구조를 공부할 수 있는 개념적인 문제들을 이렇게 풀이한다.
- 문제의 정답을 바로 찾아본다.
- 한 가지의 정답만을 고수하지 않고 여러 사람들의 정답을 보며 차이점을 생각해본다.
- 그 중 내가 가장 이해가 잘 되는 코드를 직접 작성해보며 이해하려고 노력한다.
- BaekJoon에 문제 제출 후, 오답 일지에 각 날짜로부터 1, 3, 7일 뒤(즉 1일, 4일, 11일 뒤)에 해당 문제를 기록한다.
- 다음날 새로운 문제를 다시 1~4번으로 진행 후, 오늘의 오답일지에 있는 오답문제들을 최대한 정답의 도움없이 최대한 간결한 검색(메소드의 반환값과 같은) 으로만 문제를 해결하는 연습을 한다.
- 마지막 7일 뒤 까지 오답일지를 잘 마무리하면 그 문제는 졸업한다.
6-1. 만일 졸업하지 못했고 계속해서 이해가 안된다면, 다시 7일 뒤에 오답일지에 작성하고 정답지를 보며 공부한다.
이렇다 보니 나의 백준 등급은 현재로써는 나의 점수가 아니라 배움을 진행함에서 자연스레 올라가는 지표라고 보는 것이 타당하겠다.
언젠가 내가 정해놓은 알고리즘 유형들을 모두 접하고 공부를 한 뒤 직접 문제들을 찾아나서기 시작할 때, 그 때부터가 진정한 나의 등급이 책정되는 날이라고 생각한다.
앞으로는 매 달마다 내가 알고리즘을 어떤 유형까지 공부하였고, 무엇이 이해가 잘 되지 않았으며, 그 중 특별히 어려웠던 문제들을 가져와 포스팅 하도록 할 것이다.
또한 요즘 바쁘고 아프다는 핑계로 시간적 여유가 있었음에도 하루에 고작 한 문제만 풀어대는 나 자신이 너무나 한심하기 때문에 최소한 일일 두 문제와 이 블로그에 기록을 열심히 남길 것 이다.