Uknow's Lab.
article thumbnail

 

 

 

그동안 저는 무작정 백준/프로그래머스에서 코딩 테스트를 풀곤 했습니다.

단순 구현문제나 그리디, 정렬, 이진탐색, 투 포인터 등은 할만 했는데,

어느 순간부터 다익스트라, 최소 스패닝 트리, DFS/BFS 등 특정 알고리즘, 자료구조를 알지 못하면 풀지 못하는 문제가 나오더라고요.

 

기존에는 모르는게 하나씩 나올 때 마다 인터넷을 뒤져가며 찾아봤지만,

이럴게 아니라 강의나 책을 보고 코딩테스트를 제대로 공부해봐야겠다는 생각이 들어

Do it! 알고리즘 코딩테스트 자바편을 구매해 공부하였습니다.

 

 

 

왜 이 책을 골랐는가

Do it 시리즈는 표지 디자인이 너무 깔끔하고 그동안 읽었던 Do It 시리즈는 내용도 꽤 만족스러웠기에,

Do It 시리즈는 그냥 믿고 사는 편입니다.

 

그리고 무엇보다 시중에 자바 코딩테스트 책이 그리 많지가 않더라고요.

저는 코틀린을 주 언어로 삼고있는 개발자지만, 코틀린 책은 더더욱 없고,

자바도 사실상 주 언어처럼 익숙하기에, 그냥 자바 코드를 보고 코틀린으로 짜면 되겠다는 생각이 들었습니다.

 

사실 이 책을 고른데에는 큰 이유가 없어요.

그냥 Do it 시리즈 팬이기도 하고, 시중에 나와있는 자바 코테 책도 많이 없고, yes24에서 인기순 눌렀더니 맨 위에 떠서 골랐을 뿐.

 

 

 

그럼 책 내용은 알찼는가?

보통 (대분류 알고리즘/자료구조 소개) - (소분류 알고리즘/자료구조 설명) - (기출문제 1~3개)로 진행되는데,

백준(+Solved.ac)에 수록된 문제를 갖고 푸는게 꽤 마음에 들었습니다.

 

처음에는 배열, 리스트 활용부터 시작하여

스택, 큐 같은 다른 자료구조들,

투 포인터, 구간 합 구하기, 정렬 등 조금 이해하기 쉬운 알고리즘부터 시작을 하며,

다익스트라, 플로이드 워셜, 최소 스패닝 트리, 위상정렬, 세그먼트 트리 등 슬슬 매워지기 시작해요.

그냥 온갖 유형은 다 나온다고 보면 됩니다.

 

이 책에 대한 생각은 코딩테스트를 응시하기 전 저응시한 후의 저로 나뉩니다.

코딩테스트를 응시하기 전에는 솔직히 뭐 이런거 까지 다 공부하냐... 싶었는데

5~7개 정도 코딩테스트를 응시하고 광탈한 순간 깨달았습니다. 아... 다 공부해야 하구나.

 

 

투 포인터, 이진탐색, 그리디, DP -> 단골문제 입니다.

 

DFS/BFS/백트래킹 -> 90% 확률로 나오는 것 같습니다.

 

최소 스패닝 트리 + 유니온 파인드 -> 그저께 부트캠프 코테 봤는데 나왔습니다.

 

기하/CCW -> 처음 봤을 땐 뭐 이런게 다있지?

싶었는데 생각해보니 부트캠프 코테 볼때 비슷한게 나왔던 것 같습니다...

당시에는 이게 뭐야 하면서 그래프로 뻘짓했던 것 같은데 지금 생각해보니 CCW 였던듯...

 

다익스트라, 플로이드 워셜 기타 등등 -> 아직 직접 코테에서 본 적 없긴 하지만, 유명한 알고리즘인 만큼 빈출문제라 들었습니다.

 

물론 몇몇 유형은 오잉? 이건 그냥 넘어가도 될 것 같은데? 싶은 유형도 있긴 했지만,

전반적으로 굉장히 알차다고 볼 수 있습니다.

 

 

 

총평

자바 개발자인데, 천천히 다양한 알고리즘을 파보고 싶어요!

-> 추천드립니다.

 

지금 발등에 불이 떨어져서 핵심 빈출만 딱 딱 공부하고 싶어요!

-> 해당 책에는 핵심, 빈출 키워드가 붙어있어는데 이 것만 공부하시거나, 핵심 빈출만 깊게 다루는 다른 책을 추천드립니다.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.