본문 바로가기
취업/코딩테스트

2022 NHN 게임 개발자 채용 코딩테스트 후기

by 넬준 2022. 5. 29.

 

총 180분 동안 4문제를 푸는 시험이었다.

4번 문제 빼고 3솔했다. 단톡방을 보니 4번 문제가 변별력이 있는 문제였다고 생각한다. 4번 문제 푸신 분들도 종종 있었고, 아니면 나같이 4번 문제빼고 3솔 하신 분들이 많았다. 

 

1번 문제

 간단한 구현 문제였다. 여러 라운드에서 어떤 조건에 맞는 라운드가 몇 번인지 리턴하게끔 구현해야 했다.

 조건에 맞게 여러 반복문을 작성했는데 생각했던 대로 작동하지 않았다. 급하게 작성하다보니 자꾸 한, 두 조건을 빼먹었다. 다 적었다고 생각하고 제출했는데 몇몇 테스트 케이스가 자꾸 실패하는 거였다. 일단 큰 흐름은 다 구현했기 때문에 다른 문제 먼저 풀고서 다시 와서 살펴보기로 했다. 

 돌아와서 다시 살펴보는데 아무리 봐도 틀린 부분이 없었다. 작성한 코드를 읽고 아무리 디버깅을 해봐도 틀린 부분이 없었다. 남은 시간을 다 쓸 생각으로 보고 있는데도 바꿀 부분이 전혀 보이지 않았다. 그러다가 5분 남겨두고서 마지막이라고 생각하고 다시 처음부터 차근차근 읽고 있는데, 한 군데에서 갑자기 '혹시...?' 이런 생각이 들었다. 그래서 순서를 반대로 바꿨는데 모든 테스트 케이스를 통과했다. 시험 끝나고나서 다시 보니 당연히 잘못된 부분이었다. 헷갈릴 수 있는 부분이긴 했지만, 좀 더 차분하게 생각했다면 시간을 오래 쓰지 않고 금방 통과할 수 있었을 것이다. 그래도 통과했으니까 다행!

 단톡방에서 어떤 분이 자신의 풀이가 맞는 것 같은데 첫 번째 테스트 케이스만 통과하고 다 실패했다고 한 번 봐주실 분 있냐고 해서 코드를 볼 수 있냐고 여쭤봤다. 그 분의 풀이를 보니 중복을 Set으로 처리하셨는데 두 조건 중 두번째 조건을 처리하는 데 문제가 있는 것 같다고 반례와 함께 말씀드렸다. 다시 고민해보시더니 자기는 그 쪽으로는 생각 못했다고, 자기 풀이에 갇혀있어서 반례를 생각하기 힘들었다고 하셨다. 그래서 내 풀이에 갇혀서 다른 쪽으로 생각 못한다는 거에 크게 공감해서 이런 저런 얘기를 잠깐 나눴다. 틀린 부분이 있었지만 그 분의 풀이에서도 배울 것이 있어서 재밌고 알찬 시간이었다.

 

2번 문제

 45분 정도 걸렸다.

 문제를 보고 딱 떠오른 건 Stack이었다. 요소 별로 필요했기 때문에 Stack을 요소로 한 List를 만들었다. Stack에 들어갈 Point 클래스를 따로 만들어 원하는 정보를 필드로 넣어주고 필드값 변경해줄 메서드를 만들어주었다. 그리고 문제 상황에 맞게 if절로 분기하여 각 상황에 맞게끔 로직을 작성해줬다. 내부 로직 작성하기 전에 수도코드 작성할 때보다는 코드가 깔끔하게 작성됐다. 새로운 객체를 많이 생성해야 해서 테스트 케이스 걱정을 했는데 잘 통과했다.

 

 

3번 문제

 30분 정도 걸렸다.

 평소에 여러 번 풀었던 게임판을 이동하는 문제 유형으로 bfs로 접근해서 풀었다. 조건이 몇 가지 더 추가된 거 빼고는 크게 다르지 않았다. 제출해보니 몇 가지 테스트 케이스에서 시간이 조금 오래 걸렸는데 어느 부분에서 연산을 줄일 수 있을지 고민해봐야겠다.

 

 

4번 문제

 못 풀었다!

 dfs로는 풀 수 있을 듯 했는데 조건 범위가 dfs로 풀 범위가 아니었다. dp로 접근이 가능할까? 생각했는데 도무지 방법이 떠오르지 않아서 다른 문제에 시간을 더 투자했다. 끝나고서 물어보니 역시나 dp로 푼 분들이 있었다. dp 유형 연습을 많이 해서 잘 풀 줄 알았는데 아직 연습이 더 필요함을 느낀다. 쉽지 않은 유형이다. 

댓글