본문 바로가기
카테고리 없음

코테 초심자의 400점 획득 및 고득점을 얻기 위한 친절한 문제 풀이 전략

by legend59 2023. 4. 8.

IT업계에서 우수한 사원을 선발하기 위해서 코딩 테스트를 도입한 것에 그치지 않고 최근에는 다른 것 상관없이 오직 코딩 테스트만으로 채용을 한다는 기사를 어렵지 않게 볼 수 있다. 규모가 큰 회사라도 자체적으로 코딩 테스트를 위해 online judge 사이트를 구축하고 거기에 역량을 적절하게 판별하기 위한 문제를 만들어 내는 것은 만만치 않은 일이다. 이 책에 소개된 카카오의 사례나 기타 여러 회사의 경우 프로그래머스의 우수한 시스템과 문제를 본인들만의 테스트를 위해 별도의 계약을 통해 이용하기도 한다.

프로그래머스의 시스템은 이미 재직회사에서 사내 온라인코딩대회를 통해 몇번 참가를 하여 익숙하다. 하지만 '사내 온라인코딩대회'를 포함하여 PCCP시험에서 고득점을 얻기는 쉽지 않다. 쉽지 않은 난이도의 문제를 굉장히 짧은 시간안에 풀어야 하기 때문이다.

PCCP 문제(총 120분내 4문항)

 



출제범위는 다음과 같다.

 



더군다나 (개인적인 사정으로) 익숙한 C/C++이 아닌 파이썬으로 고득점을 얻어야 되는 상황이다. 거기다 단시간에... 비교적 근래에 AI와 머신러닝에서 파이썬을 사용하긴 했으나 어디까지나 주력언어는 C/C++이며, 이번에 '길벗'에서 파이썬을 중심의 프로그래머스의 문제 풀이 전략을 다룬 책이 나온다 하여 출간되자 마자 빠르게 입수 하였다. 

단순 계산을 하여도, 문항당 30분. 쉬운 문제에서 시간을 확보한다고 해도 난이도 높은 문제를 풀기에는 시간이 부족하다. 제한된 시간내에 문제를 모두 풀기 위해서는 시스템에 익숙해지고 문제 유형에도 익숙해지는 것이 필수다. 

특징1> 성능 개선을 위한 인사이트 획득.
개별 문항은 여러 테스트 케이스를 가지고 있다. input 범위가 작은 경우에는 잘 동작하던 코드도 범위가 넓어지면 성능에서 해당 테스트 케이스는 실패하고 실패하게 된다. 2장에서 시간 복잡도의 개념을 설명하고 있는데 개념에서 그치는 것이 아닌 그 이후의 여러 실전 예제 문제에서 문제 유형별 시간 복잡도를 사전에 어느정도 가늠하고 고득점 획득을 위한 방법을 단계적으로 설명하고 있다.

특징2> 풀이 방법은 하나가 아니다.
한 가지 문제를 단순히 풀이하는 것이 아니라 다른 생각으로 달리 풀 수 있는 방법에 대해서 안내한다. 같은 문제에 대해 생각해 낼 수 있는 여러 풀이 방법에 대해 설명해주는 것이 특히 인상적이다.

특징3> 쉬운 설명.
저자가 최대한 쉽게 설명하려고 하는 노력을 여러곳에서 볼 수 있다. 그림도 많이 들어가 있어, 텍스트로만 전달해서는 쉽지 않은 부분에서도 많은 공을 들이고 있다.

특징4> 저자의 다년간의 경험치&노하우 간접 경험.
책에서 인상 깊은 구절을 몇가지 정리해 보겠다.
- 일단 작전을 구상하고, 생각을 정리해보세요. 그 다음에 문제를 풀고, 답을 보면서 한 번 더 자신의 생각을 정리해보세요. 느려도 괜찮습니다. 한 문제라도 온전히 자신의 것으로 만드는 것이 중요합니다(3.2절)
- 최근 여러 코딩 테스트에서 '~를 구현해라. ~를 풀어라' 형태의 단순한 질의 응답 문제보다는 실생활과 엮어 구현해야 할 사항과 목적을 설명에 담아 출제하고 있으므로 그 속에서 무엇이 필요한지 알아내고, 어떻게 해야 문제를 풀 수 있는지 고민이 필요합니다(3장 마무리)
- 책을 다 읽었다고 해서 알고리즘 공부가 끝나느 것이 아니라, 이제 한 단계를 마쳤다고 생각해주세요. 프로그래머스에는 지금도 새로운 문제가 추가되고 있으며, 다양한 경우와 조건에 맞춰 좀 더 폭넓은 문제 범위를 제공하므로 시간이 될 때마다 끊임없이 문제를 푸는 습관을 들이세요. 합격도 중요하지만, 제일 중요한 건 여러분의 실력 향상입니다(14장 마무리)

아쉽게도 몇몇 사소한 오타 및 그림을 잘못기재한 부분이 보였다(다만 많지는 않았으며, 내용 이해해 크게 방해가 될만큼의 큰 실수는 없었던것 같다). 그러나 이 책 대상이 초심자를 포함하고 있다는 점에서 초판 이후의 개선판에서는 사소한 실수도 모두 개선하여 프로그래머스 코딩 테스트 문제 풀이 전략 뿐만이 아닌 PS(Problem Solving), 알고리즘 분야 자타공인 최고의 서적으로 자리할 수 있길 희망하며 리뷰를 마치겠다.

PS : PCCP 시험 신청을 해놓고 아직 시험을 치르기 전이다. 좋은 시험 결과를 얻고 지금 작성한 리뷰를 업데이트(?) 하길 바래본다. 이 책의 진가 여부에 대해 다시 수정하러 오겠다.