종만북에서는 문제 풀이 과정을 나누길 강력하게 권장한다.
이유는 단순하다.
우선 알고리즘 문제는 보통 어렵고 지문 자체를 이해하는데 많은 시간이 걸릴 수 있다. 따라서 당황하기 쉽다.
당당하게 문제에 맞서기 위해서는 문제를 통과해 답에 접근하기까지 순서가 필요하다.
-
문제를 읽고 이해한다.
- 많은 경우가 문제를 잘못 이해하고 쉐도우 복싱을 하는 경우가 많다. 이를 방지하자
-
재정의와 추상화
- 재정의를 한다는 것은 자신이 이해하기 쉬운 형태로 받아들인다는 것이다.
- 추상화는 잘 이해한 문제에서 정답을 끌어내기 위한 부분을 수학적/전산학적 개념으로 재정의하는 것을 말한다.
- 이 두가지가 완료되었다면 문제를 풀 수 있을지 없을지가 결정된다고 본다. 이유는 간단한데 사실상 알고리즘 문제를 수학문제로 치환하였기 때문이다. 수학 문제가 된 이상 당신이 이에 대한 이해와 개념 어느정도의 연습이 되어 있다면 당연하게 문제가 풀릴 것이고 그렇지 않다면 백날 풀어도 풀 수 있을지 없을지 모른다.
-
계획 세우기
- 여러 해법이 떠올랐다면 어떤 방법을 선택할지 계획을 세운다. 만약 아이디어가 하나 뿐이라면 자동적으로 스킵된다.
-
계획 검증하기
- 해당 계획을 머리속으로 굴려보자 실제 구현을 하기 전 마지막 점검을 하는 것인데 계획이 결과적으로 정답을 도출 할 수 있는지를 생각해보라는 것이다.
-
계획 수행하기
- 잘 구현을 하라는 말이다.
-
회고하기
- 알고리즘 문제는 꼴보기 싫어지는 속성이 있어서 한 번 풀어본 문제를 또 풀기 싫은 경우가 100% 이다. 하지만 이런 문제를 또 풀어보거나 내 풀이와 다른 사람의 풀이를 비교해 본다면 해당 알고리즘을 더 능숙하게 사용 할 수 있을 뿐 아니라 다른 문제에도 자연히 손이가게 되는 능숙한 무기가 될 수 있다.