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

2022 LG CNS Code Monster 예선회고

by soypablo 2022. 11. 12.

개요

프로그래머스에서 주관한 코딩 테스트 선발 대회.

그냥 코딩 테스트 연습하러 프로그래머스 들어갔는데 접수가 이틀 남았고, 이번 주말에 바로 예선이어서 신청해봤다.

 

3시간 정도에 4문제를 해결하는 코딩 테스트였다.

회사마다 다른 것 같지만, 인턴 코딩 테스트가 2시간이고, 카카오가 4시간에 5~7문 제정도 것 같으니 중간 정도 시간이었던 것 같다.

 

히든 테스트 케이스 통과 여부는 주어지지 않았다.

코딩 테스트를 여러 번 해보면서 느낀 건데, 1차에서는 보통 히든 테케 통과여부가 주어지지 않고, 2차에서는 보통 히든 테케 통과 여부를 준다.

사실 히든테케 통과 여부를 안 주면 이전에는 상당히 불쾌했다. 약간 정답 여부를 바로 알 수가 없다 보니 찝찝한 느낌?

카카오 코딩 테스트를 설계했던 분께서도 히든테케 통과 여부를 권장하기도 했고, 나도 히든 테케 통과 여부를 알려주는 것이 더 좋다고 생각한다. 그 이유는 간단히 말하면 내가 생각하는 좋은(변별력 있는) 코딩 테스트 문제는 어려운 알고리즘을 구현하는 문제가 아니라, 내가 알고 있는 알고리즘을 깊게 이해해서, 새로운 문제를 해결하는 방법을 제시하는 것이 코딩 테스트의 본질이라고 생각한다.

즉 좋은 문제는 무슨 알고리즘을 써야 할지는 떠오르되, 단순 알고리즘을 통해 바로 해결하는 것이 아니라, 해당 알고리즘의 이해를 통해 약간 변형시켜가며 단계적으로 문제를 해결하는 것이다. 

알고리즘을 변경하는 과정에서, 바로 완벽히 변경해서 시간 복잡도를 개선하는 동시에 모든 예외를 통과하면 좋지만 사실상 그런 요행과 같은 일이 현업에서 일어나진 않을 것이다.(물론 현실에 히든 테케가 제시되지는 않는다!), 코딩 테스트의 목적이 실제 역량을 고려한다면, 히든 테케 통과 여부를 제시해주며 응시자의 문제 해결 및 추론 능력을 확인하는 게 좋을 것이다.

 

물론 이런 사실을 담당자들도 모르지는 않을 것이라고 생각했는데, 왜 그런 걸까 이유를 생각해보았다.

이유는 1차를 지원하기 위한 자격요건이 없다 보니 1차 응시자가 아주 많을 것이고, 시험을 보는 당시에 라이브로 채점 큐를 돌려서 히든 테스트케이스 통과 여부를 제시해주려면 서버가 아주 좋아야 하고 많아야 할 것이다. 이런 비용을 감당할 수 없다 보니 1차에서는 히든 테케를 안 주고 나중에 한 번에 처리하는 방식을 차용하고 , 응시자가 적은 2차에서는 서버가 채점 큐를 확실히 감당할 수 있다 보니 라이브로 테케 통과 여부를 주는 것 같다.

 

 

난이도를 평가해보자면, 단순하게 구현하는(시간복잡도는 무시하고 답은 나오는 경우) 어려운 2단계 ~ 쉬운 3단계 정도로 4문제가 구성되어 있었던 것 같고, 개인적으로 문제를 잘 만들어서 재미있었다. 신경을 좀 쓴게 보였다.(프로그래머스 자체에서 만든 문제는 테케가 부실하거나 오류가 있는 경우도 있고, 무엇보다 난이도 설정이 이상하다. 특히 level 2,3에서 같은 레벨 간의 난이도 간극이 엄청 크다.)

 

4문제 테케를 통과하는 자체는 2시간 30분 정도 걸렸는데, 시간복잡도를 체크하는 파트에서 점수가 많이 까일 것 같다.

시간복잡도를 체크하는 능력을 길러야 할 것 같다.