기본 책 정보
제목: 프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략 1
저자: 구종만
출판사: 인사이트
2. 문제 해결 개관
2.2 문제 해결 과정
『어떻게 문제를 풀 것인가』(원제: How to Solve It)에서 소개하는 문제 해결 과정
- 문제를 이해한다
1-1. 문제를 익숙한 용어로 재정의한다
- 어떻게 풀지 계획을 세운다
2-1. 계획을 검증한다
- 계획 수행, 문제를 해결한다
- 어떻게 풀었는지 돌아보고, 개선 방안을 찾아본다
→ 좋은 회고 방식?: 문제를 풀 때마다 코드와 함께 자신의 경험을 기록으로 남기는 것
오답은?: 오답 원인 적기(+다른 사람의 코드 보기)
못 푸는 문제는?: (특히 초보자에게)너무 오래 걸린다 싶으면 다른 사람 풀이, 코드 참조하기.
BUT. 반드시 되새김질 필요
2.3 문제 해결 전략
일반적인 전략
- 직관과 체계적 접근을 위한 질문
- 비슷한 문제를 푼 적이 있는가?
- 단순한(무식한) 방법에서 시작할 수 있을까? → 일단 해보고 점점 최적화
- 내가 문제를 푸는 과정을 수식화 할 수 있을까?(아이디어가 떠올랐을 때) → 손으로 직접 예제 입/출력 해보기
- 문제를 단순화할 수 없을까? (제약 조건 / 계산할 변수의 수 / 차원 등을 조정해보기)
- 그림으로 그려볼 수 있을까? (직관적)
- 수식으로 표현할 수 있을까?
- 문제를 분해할 수 있을까? (예: 제약조건들을 분리해보기)
- 거꾸로 생각해 문제를 풀 수 있을까? (예: 사다리게임)
- 순서를 강제할 수 있을까?
- 특정 형태의 답만을 고려할 수 있을까?(정규화)
3. 코딩과 디버깅에 관하여