[회고록]2021 라인 게임 개발 인턴 코딩테스트를 보다 (feat 코딩함수 노트의 중요성)

Updated:

라인 코딩테스트를 보다

라인 게임개발 인턴에 지원을 하고 오늘 아침에 라인 코딩테스트를 보았다. 쉽지 않을거라 예상은 했지만 이 정도일 줄은 몰랐는데 어느 정도 각오는 한 상태였어서 그런지 충격적이진 않았다. 두달 전까지만 해도 엄두도 못 냈을 문제들이었을 텐데 이번에는 좀 풀었다. 오늘 문제를 푸는 동안에도 느꼈던 점을 적고자 한다. 이걸 미리 했더라면, 알고 풀었더라면 더 수월했을 것을 기록하고자 한다.

자신만의 라이브러리를 만들자

“이런 기능을 하는 함수는 없나?” 오늘 풀면서 가장 많이 한 생각이다. 특히 나는 c++ 을 주 언어로 알고리즘 문제를 푸는 데, 타 언어인 Java 나 Phython 등에 비해 문자열 처리가 정말 까다롭다. 이번 문제에서도 문자열을 처리해줘야 하는 상황이 왔었는데 분명 예전에 구현해봤던 문자열 처리 문제인데 기억이 안난다!! 그래서 실시간 구글링을 해가며 풀었다. 이것 자체가 큰 시간낭비인 것이다.

그렇다면 어떻게 해야 할까? 바로 특정 기능의 함수를 작성해서 알고리즘 노트에 기록(저장)하는거다(알고리즘 노트는 일종의 저장소)! 그리고 매번 필요할 때마다 가져다 쓰면 된다. 나는 이번 코테 후 바로 나만의 문자열 처리 함수를 작성해서 알고리즘노트에 기록하기로 했다. 나는 특정 ‘문자’를 기준으로 문자열을 분리해주는 함수를 작성하였다. 이러면 이걸 구현하느라 시간을 소요하지 않아도 된다.

국어와 상식 공부

코딩테스트의 문제 지문은 평균적으로 매우 길다. 길면 길수록 힌트가 많이 주어지지만 그럴려면 지문 전체를 이해할 수 있어야 한다. 그 후 지문을 이해하고 논리적으로 구현 순서를 정해야 한다. 오늘 문제에서 지문을 전체적으로 이해하는데는 문제가 없었으나 단어 하나의 의미를 몰라서 한참 헤맸다.

예를 들어서 달력 관련 문제를 보자. “윤년이 아닌 년도의 매월 총 일 수를 출력하라” 라는 문제가 있다고 한다면, 우선 우리가 기본적으로(상식적으로) 알고 있어야 할 것은 ‘윤년’ 이란 무엇이며 매월 일 수가 각각 얼마나 되는가를 알아야 한다. 이처럼 코딩테스트에서도 상식은 아주 중요하다. 이 문제는 ‘윤년’이 뭔지 모르거나 매월 일 수가 얼마나 되는지 모르면 풀 수가 없다(참고로 ‘윤년’이란 2월 달이 29일의 일 수를 가지는 년도를 말한다). 그러니 책을 읽자. 나가자. 경험하자. 코딩만 하다가는 바보가 된다.

Categories:

Updated:

Leave a comment