책 - 프로그래밍에서 배우는 알고리즘 문제 해결 전략, 내용 정리
1. 문제를 읽고 이해한다.
2. 문제를 익숙한 용어로 재정의한다.
3. 어떻게 해결할지 계획을 세운다.
4. 계획을 검증한다.
5. 프로그램으로 구현한다.
6. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다. (회고)
-비슷한 문제를 풀어본 적이 있던가? (비슷한 문제, 즉 온전한 경험이 되려면 기존 문제의 원리를 완전히 이해한 상태여야 한다.)
-단순한 방법에서 시작할 수 있을까?
-내가 문제를 푸는 과정을 수식화할 수 있을까? (자신이 문제를 해결한 과정을 공식화해서 답을 만드는 알고리즘)
-문제를 단순화할 수 없을까? 문제의 좀 더 쉬운 변형판을 만들어 먼저 풀어보자.
-그림으로 그려볼 수 있을까? 시각화
-수식으로 표현할 수 있을까? 수식을 전개하거나 축약하는 등의 순수 수학적 조작이 문제를 해결하는데 도움을 줄 수도 있다.
-문제를 분해할 수 있을까? 대표적인 예 : 문제의 제약 조건을 분해하는 방법
-뒤에서부터 생각해서 문제를 풀 수 있을까? 사다리타기 바꿔치기
-순서를 강제할 수 있을까? 순서 뒤집는 방법의 연장선으로, 순서가 없는 문제에 순서를 강제해서 문제 해결
-특정 형태의 답만을 고려할 수 있을까?