넥슨 면접때 받은질문인데 2차원 평면에 10만개의 아이템이 있고 5천명의 캐릭터가있음 캐릭터는 가장 가까운 아이템에 다가가서 아이템을먹음 이때 캐릭터가 움직일 루트를 효율적으로 구하는 방법을 제시하시오 - dc official App
게임프로그래머라면 당연히 이런 질문을 들었을때 역으로 질문할줄 알아야 함 우선 맵의 구조에 대해서 좀더 구체화해달라해야함
이게 플레이어가 서로 충돌하나?
아마 충돌은 없었다고 가정했었던거같늠
당연히 저런 질문을 들었을 때 바람의나라와 같은 타일형 맵일때랑 다른 종류의 맵일때랑 구현방법이 다를꺼고 그런거 지식 하나하나 늘여놓을수록 플러스점수됨
오래전일이라 어떤질문 주고받았는지는 기억안나는데 최종적으로 면접관이 원했던건 어떤 자료구조에 넣어서 어떤 알고리즘을 사용한다~식의 대답이라고 해줬음, 나는대답못함
특정한 도메인의 회사에서 대단히 추상적인 면접질문이 들어왔을때는 하나하나 케이스를 분리해서 그 회사에 맞는 지식들을 꺼내서 보내주는게 중요함
찐통암기냐 짭이냐
만약에 그게 요구한 사실이든 아니든 간에 무조건 플러스점수됨
그리고 이런 역 질문을 했을 때 그게 면접관의 의도가 아니었다면 면접관이 허허 하면서 좀더 구체적인 상황을 말해줄거임. 왜냐하면 저런 면접질문 자체가 처음부터 알고리즘 시험문제처럼 딱 정형화된게 아니기때문에 구체화하는 과정 없이는 똑바로 대답하는게 불가능하기 때문임
실제로 회사에서 들어가서 문제상황이 발생했을때, 이 직원이 실무자와 어떻게 대화를 하는지 보는게 게임회사에서의 면접질문임
1. 일단 무조건적으로 최단거리에 있는 아이템을 반드시 먹게하는것이 중요한가? 아니면 그 상황을 희생하고 일부는 최단거리에 있는 아이템을 못먹더라도, 가까이 있는 쪽으로 가는것처럼 보이는 상황이 중요한가?
2. 여러 캐릭터가 한 아이템을 쫓아가는 경우가 생기는가? 그럴때는 어떻게 처리를 해야하는가?
이 외에도 수많은 세부문제가 생길 수 있음
만약에 각자 위치를 가지고 있고, 하나하나가 최단거리를 찾아서 찾는다고 하면,... 쿼드트리 (2D니까)나 KD트리를 구축해서 최단거리를 찾도록 하면 되지 않을까 생각은 하는데 이게 맞을랑가 모르겠네.
나도 답은몰러