9월 11일에 LINE과 KAKAO 코딩테스트 두 개를 모두 응시해야 했어서 일정 관리에 상당히 애를 먹었다.

서류 제출 후 통과된 인원에 대해 LINE 코딩테스트 응시기회가 주어지는데 라인은 으레 알려졌듯이 면접에서 거의 결정되는 회사로 서류기준이 매우 관대하다고 알려져있어 별 걱정은 하지 않았다.

코딩테스트를 보고난 뒤 느꼈던 점은 정말 중요한 실전에서는 굉장히 긴장이 된다는 점과 그에 따라 코드 작성함에 있어 로직을 구상하거나 분기문 작성하면서 예외 처리에 누락사항이 빈번하게 발생했다는 점이다. 총평은 조금 아쉽다.

총 6문제 출제되었고 3시간이 주어졌다. 전반적으로 요구사항을 잘 읽고 분기문을 작성하던지 의도에 맞게 재귀함수를 작성하던지에 대한 문제들이었고 적절하게 자료형을 채택해서 데이터를 잘 다뤘어야 하는 문제들이 주를 이뤘다. 풀면서 내가 데이터 전처리를 하는 건지 알고리즘을 풀고 있는 건지 혼동이 왔을 정도였다. 출제된 문제들은 대부분 투포인터로 해결할 수 있었는데 다른 코딩테스트에서 bfs나 dfs, dp가 한 문제 정도 출제되었다는 점을 참고한다면 쉬운문제였음에도 오히려 투포인터로 대부분 해결해야 해서 애를 먹을 수도 있었겠다.

1번은 투포인터로 우측 포인터를 이동시키면서 조건에 맞을 경우 왼쪽 포인터를 이동시키면서 시간복잡도 O(n)을 맞춰야 한다.

2번은 해시 자료구조를 잘 다뤄서 카운팅만 잘 해준 뒤 조건에 맞게 분류하면 되는 문제인데 분류 과정이 2번 겹쳐서 DB를 구성하듯이 key-value를 잘 고려해야 했다.

3번은 스케쥴링 문제인데 시간을 1씩 올려가면서 조건에 맞게 현재 요청이 있는지 검사하고 유무에 따라 들어온 작업의 분류 번호 검사, 작업을 쌓는 과정, 작업을 교체, 대기하는 로직을 잘 짜야했다. 분기문이 꽤나 많아지는 문제로 완전탐색임을 캐치해야함은 물론이고 분기문까지 잘 처리해야 했다. 갠적으로 어렵진 않았으나 제일 복잡했던 문제였다. 여기서 시간을 너무 많이 빼앗겼다.

4번은 재귀함수 문제로 병합정렬의 구조를 이해했다면 즉시 해결할 수 있는 문제였다. 분할 조건과 함수의 종결 조건을 잘 설정하면 끝난다.

5번은 문자열 유사도 관련 문제였는데 역시나 투포인터로 수정해야 하는 문자열의 개수를 카운팅하는 함수와 조건에 따라 문자열을 분리해서 분기문을 작성해야 했는데 3번에서 시간을 너무 빼앗겨 시간이 모자라 해결까지는 하지 못했다.

6번도 문자열을 다루는 문제로 스트링을 시간으로 바꿔서 주어진 조건에 해당하는 범위의 레코드만 추려낸 뒤 조건에 맞춰서 해시 자료구조와 배열을 섞어서 데이터를 저장한 뒤에 분류 조건을 따져가면서 정답을 제출해야 했다.

히든 테스트케이스를 제공하지 않아 제출 후 엣지 케이스를 통과할 수 있을지는 모르겠지만 일단 예제는 6문제 중 5문제를 통과시켜서 제출했다. 나머지 한 문제도 긴장을 좀 덜했다면 3번 분기문 처리하면서 예외사항 고려에 시간을 아껴서 해결할 수 있었을텐데 조금 아쉽다. 전반적인 평가를 하자면 코딩 실력보다는 엄청하게 긴 지문을 읽고 조건을 명확하게 파악하여 로직을 만들어야 했던 테스트로 데이터 분석과 요구사항 파악이 주요했다. 코딩테스트를 합격하더라도 악명높은 LINE의 필기테스트와 면접이 남아있는데 아직 거기까진 수준이 못 미치는 듯하여 그냥 열심히 더 준비해야겠다는 생각밖에 들지 않았던 테스트였다.

후기 : 라인 코딩테스트는 합격해서 필기 테스트 응시 자격을 얻었다. 필기 테스트 범위가 겁나 넓던데 겉핥기식으로라도 보고 가야겠다. 면접까지 생각하면 합격하기 힘들 수도 있겠지만 끝까지 최선을 다해 진행해보려 한다.

- 후속 포스팅

2021 하반기 LINE 필기 테스트 후기

+ Recent posts