본문 바로가기

일상

POCU 알고리즘 강의 수강후기

이번에 POCU Academy 의 알고리즘 강의를 수강하게 되었다.

보통 알고리즘 강의와는 많이 달랐다. 장점으로는 해시나 암호화를 조금 깊게 알려주셨고 또한 미니맥스 알고리즘에 대해 실습해볼 수 있었다. 보통 미니맥스 알고리즘을 다루는 책에서는 간단히 완전탐색이 가능한 부분만 다룬다. 하지만 pocu에서는 체스에 대해 실습할 수 있었다. 체스는 모든 경우의 수를 보기가 어려운 환경이라 경우의 수 커팅을 잘 해서 적당한 너비와 깊이를 설정해서 돌려주어야 했다. 개인적으로 아쉬운 점은 차라리 체스에 대해서는 완전히 구현된 것을 주고 좀더 알고리즘에 집중할 수 있었다면 좋았을 것같다. 

단점은 학교에서만 듣는다고 해도 보통 자료구조, 알고리즘1, 알고리즘2 로 세 과목 정도되는 부분이지만 pocu 에서는 1과목으로 가르치다보니 빠진 부분이 생겼다고 본다. ( C, C++, OOP 강의는 학교에서는 각각 1개의 수업이기 때문에 pocu의 인터넷 강의만 봐도 굉장히 학교수업보다 훨씬 수준높게 잘 만들어졌다고 생각한다. 그에 비해 알고리즘은 조금 실망할 부분이 있을 수도 있다)

빠진 부분은 kmp, 서픽스 트리, 벨만 포드, 유량쪽에서는 디닉, 이분매칭 등 기본적으로 수업에서 다뤄야 하는부분이 빠진 것은 아쉽다. 분명히 개인적으로 더 공부하거나 찾아서 공부해야 하는 부분이 많다. 

지극히 개인적인 의견이지만 문제점이라고 생각하는 부분이 있다. 실습에서도, 과제에서도, 시험에서도 N제한, 메모리제한이 빠진 채 문제가 주어졌다. 이것이 문제라고 생각하는 이유는

lcs문제 같은 경우

https://www.acmicpc.net/problem/18439

메모리제한은 8MB, N 제한은 50000 (풀이 모릅니다) 

https://www.acmicpc.net/problem/18438

조금 쉬운 버전은 4MB, N 제한은 7000이다. (Hirschberg’s Algorithm 라는 알고리즘을 사용하면 된다)

N제한, 메모리제한이 없는 상태의 방식은 아무 쓸모가 없는 것을 알 수 있다.

 

그런데도 실습, 과제에서는 N 제한을 나타내지 않고 있고 이 부분은 명백히 잘못된 것이다. 대회도 아니고 알고리즘 수업의 핵심은 시간복잡도 분석과 제한 시간내에 동작하는 알고리즘을 작성하는 것이라 생각한다.

 

그렇지만 일단 준비된 강의, 실습 내용은 굉장히 도움이 많이 된다. 이미 학교에서 수업을 들은 사람도 pocu에서만 다뤄주는 부분이 있기 때문에 배울 부분이 많고 알고리즘을 처음 공부한다면 pocu 의 실습, 과제로 이루어진 학습 방식은 알고리즘 공부를 시작하는데 많은 도움이 될 것이라 생각한다.