알고리즘 코딩 공부를 하다보면 여러 블로그들을 보게 된다.
예전에 수기로 기록한 거라 어디 블로그인지는 모르겠지만, 내게는 자꾸 상기시키면 좋을 내용이라 남기려 한다.
★ 문제 해결의 과정 ★
- 문제를 정확하게 이해한다.
- 문제를 해결하는 알고리즘을 개발한다.
- 알고리즘이 문제를 해결한다는 것을 증명한다.
- 알고리즘이 제한시간 내에 동작한다는 것을 보인다.
- 알고리즘을 코드로 작성한다.
- 제출 후 만점을 받고 기뻐한다.
문제가 안 풀릴 때마다 기본에 충실하지 못하여 자꾸 앞 단계를 반복하는 일이 생긴다.
1단계도 되지 않은 채로 자꾸 5단계로 넘어가는 것이 가장 큰 문제다.
가장 중요한 1단계가 되었다면 2, 3, 4단계에 가장 많은 시간을 투자해야 한다.
2, 3, 4 단계에 많은 시간을 할애해 한번에 100점 받는 비율을 높이자.
코딩하기 전에 알고리즘을 어떻게 짤 지에 대한 생각은 미리 끝내놓자
사실 이 4단계까지가 완벽하다면 5단계에서 시간이 많이 걸릴 일이 없다,,
5단계를 한 번에 해내고, 6단계의 기쁨을 빨리 누리자!
예전에 SSAFY에서 교육 받을 때 알고리즘 강사님께서 "코딩 들어가기 전에 충분히 많이 생각하고 많이 그려보고 써보면서 머릿 속에 문제가 완벽히 들어오면 그때가 코딩할 타이밍"이라고 하셨는데,
문제를 많이 풀수록 더 와닿는 조언이었다.
알고리즘은 추상화 + 절차적사고 + 구현의 과정으로 얼마나 빠르고 정확하게 구현해내느냐 싸움이다.
시험장에서는 마음이 더 조급해진다. 그럴 수록 차분히 문제를 머릿 속에 넣고, 고려할 조건들과 예외 케이스, 알고리즘, 시간 복잡도 등을 복합적으로 생각하여 수기로 함수의 틀을 설계하자.
이는 분명 코딩 시간 단축에 도움될 것이다.
반복 숙달을 통해 한 문제를 짧게 푸는 습관을 가지자!