본문 바로가기

개발중

알고리즘 공부하는 방법

프로그래밍을 공부하는 다양한 사람들을 접해보고 싶어서 CodeStates pre코스를 등록했다.

알고리즘 문제를 가끔씩 풀기는 했지만, 이렇게 짧은 시간에 많은 문제를 접하기는 처음이다. 

개인적으로 너무어렵다.. 그래서 알고리즘 공부법에 대해 찾아본 내용을 정리해보고자 한다.

 

1. 소스를 보기보다는 무조건 쳐보기!

2. 손으로 필기하면서 풀어보기

 

알고리즘 공부법

1. 먼저 알고리즘과 관련된 이론*(아래 참고) 을 공부하여 이해한다.
   이론과 관련된 알고리즘 문제를 푸는 방법을 이해한다.
   완벽하지 않아도 일부만 이해하는 것으로 충분하다!


2. 다음으로 관련된 알고리즘 문제를 풀어본다.
   한 문제는 길어야 2시간 정도만 고민해본다.
   2시간 정도 고민해도 모르겠으면 포기하자!
   정답 소스를 보거나 다른 사람의 풀이를 본다.


3. 1, 2번에서 이해가 잘 가지 않는 부분이 있으면 질문한다.
   설마 이런 것을 질문해도 될까 고민되는 것도 질문해야 한다.
   친구들이나 관련 커뮤니티를 적극 활용하자!


4. 1, 2, 3번 후에 알고리즘을 다시 이해해보고 문제도 다시 풀어본다.
   모르겠으면 포기하고 다시 풀이를 본다.
   그래도 모르겠으면, 다른 일을 하거나, 놀러 나가거나, 다른 알고리즘 이론에 대해 공부하거나 다른 알고리즘 문제를 풀어본다. 


TIP
충분히 고민해보고 최대한 노력해보고 나서 포기하는 것이 중요하다.
충분히 고민하고 노력하는 시간은 한 문제에 1~2시간이 적절하다.
스스로 생각해서 해결하지 않고 답을 보고 해결했어도 그 문제는 해결했다고 생각하자.
1개를 3일에 걸쳐서 푸는 것보다 3개를 1일 동안 푸는 것이 더 좋다.
사용할 수 있는 관련된 라이브러리를 익혀서 사용하자.
미적분 문제를 풀기 위해서 굳이 미적분을 스스로 생각해서 만들 필요가 없이 공식을 이용하는 것과 같은 개념이다.

가장 중요한 것!!
프로그래밍을 많이 하는 것도 중요하지만 더 중요한 것은 생각을 많이 하는 것이다. 
알고리즘 공부는 알고리즘을 만드는 것이 아니고, 생각의 과정을 배워서 나중에 스스로 그러한 생각을 해내는 것이기 때문이다.
또한 자신의 풀이에 대한 회고 와 더 좋은 풀이 방법을 찾는 것이 매우 중요하다.

 


 

[공부법] 알고리즘 공부법 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io