티스토리 뷰
2018년 10월 6일 신입 개발자 공채를 위한 2019 KAKAO BLIND RECRUITMENT 오프라인 코딩테스트에 참가했다.
온라인 코딩테스트는 지인들의 이야기를 들어보니 3문제가 합격 커트라인이 맞는 것 같다. 이번 오프라인 코딩테스트는 작년에도 비슷한 주제로 온라인에서 10시간동안 코딩테스트를 봤었는데, 오프라인으로 진행 하는 걸 보니 이번 테스트에서 합격자를 많이 걸러내려는 것 같다.
작년 코딩테스트에서는 적당히 문제에서 요구하는 부분을 잘 처리해주고, 예외처리를 잘 해주면 통과할 수 있었고, 조금 더 효율을 내려면 멀티스레딩 등을 사용했었던걸로 기억한다. 그래서 이번에도 아마 비슷하게 나오지 않을까 싶어서 조금 봐두었다. REST API와 JSON Parser 를 준비하라고 하였지만, 이 부분은 문제에 그렇게 큰 비중은 차지하지 않는다. 결국엔 문제에서 요구하는 부분을 정확하게 구현하고, 예외처리를 잘 하는 것이 핵심이다.
오프라인 테스트는 워크앤올(경기 성남시 분당구 분당내곡로 117 알파돔타워IV 5층)에서 진행되었다. 대회는 11시부터 시험장 입장이 시작되었고 12시 40분까지 자유롭게 노트북 환경설정을 할 수 있었다. 시험장 책상 위에는 기념품으로 연습장과 볼펜이 있었고, 또 간단한 간식거리들이 잘 정리되어 있었다. 나는 일찍 가서 간단히 REST API와 JSON 응답 테스스트만 해보고 멀티프로세싱이나 멀티스레딩에 대해 조금 공부했다.
테스트는 5시간동안 진행되었고, 문제는 총 3문제인데 각각 점수배점이 달랐다. 각 문제마다 통과하면 기본점수가 주어지고 추가점수는 랭킹순서로 매겨졌다. 엘리베이터를 구현하는 문제였는데 처음 봤을 때 매우 어려워 보였다. 각 문제마다 주어진 조건이 조금씩 다를 뿐 3문제 전부 똑같은 문제였다. 실제로 첫 번째 문제를 제대로 풀고, 문제에서 주어진 조건만 간단하게 수정하여 나머지 문제들에 제출하면 통과가 되기 때문에 기본점수는 받을 수 있었다.
REST API를 사용하여 각 단계마다 승객과, 엘리베이터의 정보를 받고, 알고리즘을 통해 승객과 엘리베이터의 상태를 어떻게 할 것인지 결정하는 문제였다. 엘리베이터는 최대 4개까지 직접 선택해서 사용할 수 있었고, 엘리베이터의 최고층은 문제마다 달랐다. 엘리베이터의 상태는 문 열리는 중, 올라가는 중, 내려가는 중 그리고 멈춤 총 4가지가 있었고, 각 상태마다 엘리베이터의 문을 열지, 닫을지, 엘리베이터에 승객을 태울지, 내릴지, 엘리베이터가 위, 아래 어디로 이동할 것인지 결정해야하는 명령을 줄 수 있었다.
예를 들면 어떤 승객이 1층에 있고 목적지가 5층이다. 또 엘리베이터의 초기 위치는 3층에 멈춰 있다고 하자. 승객을 목적지에 내려주기 위해 엘리베이터는 다음과 같은 순서로 진행되어야 할 것이다.
- 엘리베이터가 1층으로 이동한다. (아래로 이동 명령, 멈춤 상태)
- 엘리베이터가 내려간다. (아래로 이동 명령, 내려가는 중 상태)
- 1층에 도착하면 엘리베이터를 멈춘다. (멈춤 명령, 내려가는 중 상태)
- 문을 연다. (문 열기 명령, 멈춤 상태)
- 문이 열린다. (문 열리는 중 상태)
- 승객을 태운다. (승객 태우기 명령, 문 열림 상태)
- 문을 닫는다. (문 닫기 명령, 문 열림 상태)
- 엘리베이터를 5층으로 이동한다. (위로 이동 명령, 멈춤 상태)
- 엘리베이터가 올라간다. (위로 이동 명령, 올라가는 중 상태)
- 5층에 도착하면 엘리베이터를 멈춘다. (멈춤 명령, 올라가는 중 상태)
- 문을 연다. (문 열기 명령, 멈춤 상태)
- 문이 열린다. (문 열리는 중 상태)
- 승객을 내려준다. (승객 내리기 명령, 문 열림 상태)
- 문을 닫는다. (문 닫기 명령, 문 열림 상태)
- 멈춤 상태
'후기 > 프로그래밍 대회' 카테고리의 다른 글
2018 디지털 과거 Code+ 오프라인 본선 후기 (0) | 2018.10.16 |
---|---|
2018 SCAL-MOOKJA 프로그래밍 대회 후기 (0) | 2018.10.05 |
2019 KAKAO BLIND RECRUITMENT 온라인 코딩테스트 후기 (1) | 2018.10.03 |
2018 디지털 과거 Code+ 온라인 예선 후기 (0) | 2018.10.03 |