본문 바로가기

카테고리 없음

자바 알고리즘 인터뷰 with 코틀린

몇 년 전부터 어느 정도 이름을 들어봤다 싶은 IT 기업에 취업하기 위해 반드시 통과해야 하는 "코딩 테스트"라는 관문이 생겼다. 외국에서는 훨씬 이전부터 코딩 테스트라는 것이 있었지만 국내에서는 그렇게 넓리 활용된다는 느낌은 아니었는데 이제는 필수 테스트라고 느껴질 정도로 널리 활용되는 것 같다.

 

어떤 언어가 코딩 테스트에 유리한지는 갑론을박이 있을 수 있겠지만 개인적으로 생각할 때는 구현에 무게 중심을 두는 코딩 테스트는 Python을, Data Structure, Algorithm에 중심을 두는 코딩 테스트는 Java가 유리한 것 같다. 물론 문제에 따라 특정한 언어가 유리한 경우가 있을 수 있으니 절대적이라고 생각하지 않으면 좋겠다.

 

책을 읽으면서 떠올려 본 "이 책이 가장 유용할 것 같은 사람들"은 다음과 같다.

1. Java 언어에 익숙하지만 데이터 구조/알고리즘 문제는 많이 안겪어본 사람

2. 코딩 테스트(혹은 문제)를 몇 번 풀어봤지만 어떤 방법을 택해야 할지 감을 잘 못잡겠는 사람 (=코딩 테스트 경험이 별로 없는 개발자)

 

이 책에서는 단순히 문제의 해법만을 설명하는 것이 아니라 그 문제 해결에 필요한 데이터 구조나 알고리즘에 대한 설명까지 함께 친절하게 해주고 있어서 쉽게 이해가 가능하다. 특히 데이터 구조/알고리즘 공부를 지루해하거나 외우는데 지친 사람이라면 설명과 함께 재미있는(?) 문제 풀이까지 진행할 수 있기 때문에 기존의 학습 방법보다는 더 흥미를 느끼게 되지 않을까 하는 기대가 있다. 또한 코딩 테스트에서 많이 출제되는 다양한 주제의 문제를 골고루 선별하여 설명하고 있다. 테스트는 시간이 한정되어 있으므로 문제의 해결 방향을 잘못 잡는다면 그만큼 시간이 낭비될 가능성이 있는데 다양한 주제의 문제를 한 번에 살펴볼 수 있기 때문에 해결의 갈피를 잡는 역량을 기를 수 있을 것이다.

 

제목에 "with 코틀린"으로 되어 있는 만큼 책에서 언급된 대부분의 문제에는 코틀린 해법이 같이 작성되어 있다. 문제에 대한 코틀린 해법을 같이 살펴봄으로써 재미없게 문법만을 살펴보는 것 보다는 쉽고 재미있게 코틀린을 익힐 수 있으리라 생각한다.

 

코딩 테스트의 의도를 추측해보면 "다양한 문제를 프로그래밍을 통해 해결했다면 코딩 테스트의 문제도 충분히 해결할 수 있을 것이다"라고 생각한다. 그리고 문제를 해결하는 것은 사실 꽤나 재미있고 흥미로운 일이기도 하다. 취업/이직을 계획하는 사람이 아니더라도 이 책을 통해 평소에 문제를 해결하는 경험을 쌓는다면 기른다면 취업/이직뿐 아니라 학업이나 일로써 진행하는 개발도 더 잘 할 수 있게 되지 않을까 싶다. 해결 과정의 즐거움은 추가적인 보상이 될 것이다. 이 책을 본 후에는 책에서 많이 나오는 leetcodeprogrammers에서 다른 문제에 더 도전해봐도 좋을 것 같다.

 

반응형