자 ! 드디어 자료구조가 끝이나고 알고리즘을 배울 시간이다!
알고리즘 문제해결전략책을 보며 중요하다 싶은 생각들이나 문제들을 여기에 남기겠다.
도입
알고리즘에는 추상적인 개념들이 많기에 우리는 그저 기계적으로 문제를 풀며 감을 익히는 것보다는
문제를 푸는 기술을 연마하는것이다.
그리고 이를 위해서 우리는 이 단계를 거칠 수 있다.
문제 해결 전략 과정
1. 문제를 읽고 이해한다.
문제를 익숙한 용어로 재정의한다.
어떻게 해결할지 계획을 세운다.
계획을 검증한다.
프로그램으로 구현한다.
어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다.
이 단계를 거치며 문제를 풀 수 있는데 절대적인것은 아니지만 경험이 쌓임에 따라 이 과정들을 따로 의식하지 않은 채 수행할 수 있다.
직관과 체계적인 접근
체계적인 접근을 위한 질문들
비슷한 문제를 풀어본 적이 있던가?
단순한 방법에서 시작할 수 있을까?(사탕)
내가 문제를 푸는 과정을 수식화할 수 있을까?
문제를 단순화할 수 없을까?
그림으로 그려볼 수 있을까?
문제를 분해핼 수 있을까?(마라톤)
뒤에서부터 생각해서 문제를 풀 수 있을까?
순서를 강제할 수 있을까?
특정 형태의 답만을 고려할 수 있을까?(원 내접)
이를 통해 문제들을 해결할 수 있는 다양한 아이디어를 떠올릴 수 있으므로 항상 생각해두자