GDSC Sookmyung 활동/10 min Seminar

알고리즘 초보의 공부법

dayoung20 2023. 2. 19. 18:48

이번 10분 세미나 주제는 "알고리즘 초보의 공부법"입니다.

우선 모두가 알고리즘에 대해서는 잘 알것이라고 생각합니다. 

알고리즘이란 어떠한 문제를 해결하기 위한 일련의 절차를 공식화한 형태로 표현한 것입니다.

그렇다면 알고리즘 공부가 왜 중요할까요? 사실 알고리즘을 모르고도 프로그래밍은 가능합니다. 전공 학부생인 저희들도 마찬가지고 당장의 과제나 프로젝트를 만드는데 알고리즘에 대한 정확하고 확실한 이해는 필요없긴 합니다. 하지만, 알고리즘을 모르면 응용을 할 수 없습니다. 또한, 많은 it기업들이 대부분 서류, 면접 그리고 코딩테스트를 통해 인재채용을 결정하기 때문에 중요합니다. 

그렇다면 어떤 코딩테스트 사이트를 통해 알고리즘 공부를 해야할까요?

우선 대표적인 몇가지 사이트에 대해서 비교해보겠습니다. 프로그래머스, 백준, 코딩도장, 정올 등 여러가지가 있는데요 제 발표에서는 그 중 가장 많이 사용하는 프로그래머스와 백준에 대해서 비교해보겠습니다.

우선 프로그래머스는 다양한 스타트업 및 국내 기업들이 사용하는 코딩테스트 플랫폼입니다. 대표적으로 카카오가 프로그래머스를 통해 코딩테스트를 주최합니다. 그래서 카카오를 비롯한 다양한 코테 기출문제들이 많이 정리되어있습니다.

또한, 프로그래머스에서 주관한는 다양한 코딩 챌린지, summer/winter코딩 기출들이 정리되어있습니다.

하지만, 프로그래머스는 알고리즘을 유형별로 분류해두지는 않았습니다. 그렇기 때문에 알고리즘 입문자들이나 유형별 학습을 원하시는 분들에게는 맞지 않습니다. 코딩테스트를 바로 앞두고 있는 사람들에게 더 적합한 것이 프로그래머스입니다.

다음은 백준입니다. 아마 가장 많은 사람들이 이용하는 사이트일겁니다. 백준은 알고리즘 입문자들에게 추천하는 사이트입니다. 알고리즘이 유형별로 분리되어있고, 그 유형 안에서 단계별로 문제를 풀어볼 수 있습니다. 한가지 분야에 대해서 깊게 공부하고 싶을 때 기초부터 심화까지 코스에 따라 문제를 풀 수 있습니다. 또한, 티어제가 있는데 문제별로 부여되어있는 티어가 달라서 높은 티어의 문제를 풀면 나의 티어도 올라가서 레벨업을 하는 재미가 있습니다.

백준의 유일한 단점을 꼽자면 사이트 내에서 코드를 작성할 수 없기 때문에 실제 코테 환경과는 많이 다릅니다. 따라서 코테를 앞둔 사람들보다는 알고리즘 입문자 및 자료구조 이론을 쌓고자 하는 분들에게 추천합니다.

마지막으로 좋은 알고리즘의 조건에 대해서 살펴보고 마무리 하겠습니다.

입력, 출력, 명확성, 유한성, 효율성 다양한 것들을 고려해야합니다. 첫번째로는 문제를 정확히 해결해야 합니다. 다른 좋은 알고리즘 조건을 충족해도 원하는 결과를 내지 못하면 좋은 알고리즘이라고 볼 수 없습니다. 그리고 빠르게 처리하는 것이 중요합니다. 같은 연산이라도 신속.정확도가 떨어지지 않도록 해야합니다. 3번째로는 최소의 자원으로 최대의 효율을 내야한다는 겁니다. 마지막으로는 단순명료함입니다. 누구나 문제를 해결하는 과정을 보는것만으로 쉽게 이해할 수 있어야 한다는 것입니다.