본문 바로가기
Problem Solving

[PS] 알고리즘 문제 해결의 과정

by chesleashin 2021. 3. 26.

알고리즘 코딩 공부를 하다보면 여러 블로그들을 보게 된다. 

예전에 수기로 기록한 거라 어디 블로그인지는 모르겠지만, 내게는 자꾸 상기시키면 좋을 내용이라 남기려 한다.


★ 문제 해결의 과정 ★

  1. 문제를 정확하게 이해한다.
  2. 문제를 해결하는 알고리즘을 개발한다.
  3. 알고리즘이 문제를 해결한다는 것을 증명한다.
  4. 알고리즘이 제한시간 내에 동작한다는 것을 보인다.
  5. 알고리즘을 코드로 작성한다.
  6. 제출 후 만점을 받고 기뻐한다.

문제가 안 풀릴 때마다 기본에 충실하지 못하여 자꾸 앞 단계를 반복하는 일이 생긴다.

1단계도 되지 않은 채로 자꾸 5단계로 넘어가는 것이 가장 큰 문제다.

가장 중요한 1단계가 되었다면 2, 3, 4단계에 가장 많은 시간을 투자해야 한다. 

2, 3, 4 단계에 많은 시간을 할애해 한번에 100점 받는 비율을 높이자.

코딩하기 전에 알고리즘을 어떻게 짤 지에 대한 생각은 미리 끝내놓자

사실 이 4단계까지가 완벽하다면 5단계에서 시간이 많이 걸릴 일이 없다,,

5단계를 한 번에 해내고, 6단계의 기쁨을 빨리 누리자! 


예전에 SSAFY에서 교육 받을 때 알고리즘 강사님께서 "코딩 들어가기 전에 충분히 많이 생각하고 많이 그려보고 써보면서 머릿 속에 문제가 완벽히 들어오면 그때가 코딩할 타이밍"이라고 하셨는데,

문제를 많이 풀수록 더 와닿는 조언이었다.

알고리즘은 추상화 + 절차적사고 + 구현의 과정으로 얼마나 빠르고 정확하게 구현해내느냐 싸움이다.

시험장에서는 마음이 더 조급해진다. 그럴 수록 차분히 문제를 머릿 속에 넣고, 고려할 조건들과 예외 케이스, 알고리즘, 시간 복잡도 등을 복합적으로 생각하여 수기로 함수의 틀을 설계하자.

이는 분명 코딩 시간 단축에 도움될 것이다.

반복 숙달을 통해 한 문제를 짧게 푸는 습관을 가지자!