알고리즘 문제 풀이/프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략
02) 문제 해결 개관 - 문제 해결 과정
아는개발자
2023. 5. 10. 12:59
◇ How to solve it?
- 문제를 읽고 이해한다.
- 문제 설명을 공격적으로 읽으며 문제가 원하는 바를 완전히 이해하는 과정이 반드시 필요하다.
- 문제를 익숙한 용어로 재정의한다.
- 자신이 다루기 쉬운 개념을 이용해서, 문제를 자신의 언어로 풀어 쓰는 것.
- 추상화: 현실 세계의 개념을 우리가 다루기 쉬운 수학적/전산학적 개념으로 옮겨 표현하는 과정
- 문제의 본질을 어떤 방식으로 재구성하느냐에 따라 같은 일을 하는 프로그램이라도 전혀 다른 방향으로 접근하게 된다.
- 어떻게 풀지 계획을 세운다.
- 문제를 어떤 방식으로 해결할 것인가?
- 사용할 알고리즘과 자료구조를 선택
- 계획을 검증한다.
- 설계한 알고리즘이 모든 경우에 요구 조건을 정확히 수행하는지를 증명
- 수행에 걸리는 시간과 사용하는 메모리가 문제의 제한 내에 들어가는지 확인
- 프로그램으로 구현한다.
- 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다.
- 회고: 자신이 문제를 해결한 과정을 돌이켜 보고 개선하는 과정
- 효과적으로 회고를 수행하는 가장 좋은 방법은 기록으로 남기는 것.
- 문제를 풀 때마다 코드와 함께 남기자!
- 한 번에 맞추지 못한 경우에는 오답 원인도 꼭 적는 것이 좋다.
- 회고: 자신이 문제를 해결한 과정을 돌이켜 보고 개선하는 과정
◇ 문제를 풀지 못할 때
초보 시절에는 한 문제에 너무 매달려 있는 것도 좋지 않다.
일정 시간이 지나도록 고민해도 답을 찾지 못할 때는 다른 사람의 소스 코드나 풀이를 참조한다는 원칙이 좋음.
단, 다른 사람의 소스 코드나 풀이를 참조할 때는 반드시 복기를 동반.