- 문제를 읽고 이해하기
- 조급해서 곁눈질로 딸려오는 그림과 입출력만 보지 말 것
- 궁극적인 목적을 파악하고
- 사소한 제약조건이 더 있나 살펴볼 것
- 이 사소함이 틀리나 맞나를 정하는 경우가 많음
- 재정의와 추상화
- 자신이 다루기 쉬운 개념으로 빗대기
- 자신의 언어표현으로 통역
- 추가적으로 수학적/전산학적 표현으로 축약하여 추상화 할 것
- 문장에서 추상화 할 부분을 걸러내는 역할
- 계획 세우기
- 사용할 알고리즘, 자료구조 선택
- 이때 사용할 수 있는 전략이 있음
- 계획 검증하기
- 계획이 요구조건을 충족할 지 예측하고
- 메모리, 시간제한이 제약사항을 충족하는지 검수
-
계획 수행하기
-
회고하기
- 모든 문제는 한번만 푸는 것이 아니라 언젠가 재방문 해야함
- 이 과정이 여러번 반복 될 수록 더 개선된 코드를 만들 생각을 할 것
- 자신 뿐만 아니라 타인에게 검수 받는 방법도 있음
- 자신의 프로세스, 느낀 점은 기록으로 남겨 두어 개선된 생각과 비교해 볼 것
- 틀린 것도 기록 할 것, 왜 틀렸는지 찾아내는 게 중요함
- 반복하지 않을려는 개선책을 찾아야 함
- 다른 사람의 성과를 보면서 동기부여 하면 좋음
못풀었다면?
- 시간제한이 지난다면 풀이를 보아라
- 여러번 플로우를 따라가며 본인의 방식으로 재습득 해야한다