이 글은 모든 회사의 정보를 포함하고 있지 않으며 기업들의 문제 정보를 담고 있지 않습니다. 다만 회사별로 추구하는 알고리즘 역량의 범위, 준비해야 하는 정도를 알아보시면 좋을 듯 하여 알고 있는 범위 내에서 올려봅니다.
1. 삼성
삼성은 S/W 역량테스트, 그리고 면접 전형에서 알고리즘 테스트를 진행하며, S/W 역량테스트의 경우 문제를 직접 완벽한 소스코드로 짜서 풀어야 하고, 면접 전형에서는 단 시간 내에 주어진 문제를 어떻게 풀 것인지를 구상하여 면접관 앞에서 설명하는 방식입니다.
난이도는 다소 있으며, 기본적인 자료구조와 알고리즘의 시간복잡도를 계산할 수 있고, DFS, BFS, 정렬 등의 기본 알고리즘 지식이 있어야 합니다. 어려운 알고리즘 보다는, 문제를 잘 구현하여 풀 수 있는지를 파악해야 하고 제한된 시간 내에 50개의 input data를 통과시킬 수 있는지가 관건이기 때문에, 기본적인 문제 풀이 트레이닝이 되어 있지 않으면 고생하게 됩니다.
2. NHN entertainment
NHN entertainment 에서는 알고리즘의 능숙함을 보기 보다는, 기초적인 문제 해결 능력이 있는지를 보는 것 같았습니다. 우선 제한시간이 대부분 60(!)초로, 사실상 알고리즘을 통한 최적화 보다는 문제를 어떻게든 풀 수 있는가를 보는 것 같았습니다.
3. 쿠팡
쿠팡은.. 매년 보는 방식이 달라져서 어떻게 말을 하기가 그래서 2016년 하반기 기준으로만 말씀드리자면, 음.. 난이도만 봤을 때는 오히려 삼성 S/W 역량테스트보다 어려운 난이도였지만, 문제가 본인들이 준비한 문제들이 아닌 완벽한 기출문제 위주였고, (사실 요즘에는 코딩 인터뷰 시스템을 외주 형식으로 제공하는 회사가 늘어나고 있긴 하지만, 이것을 감안하고라도 너무 똑같았어요) 그래서 많은 참가자들이 구글링(?) 을 통해 해결을 할 수 있었다고 합니다.. 쿠팡의 난이도는 평가하기가 애매한게 이게 이번에 이렇게 시행한거라 내년엔 또 어떻게 될지.. 이번에만 봤을 때는 삼성보다 더 어려웠다고 생각합니다.
4. 네이버
네이버 역시 이번에 전형이 바뀌었죠.. 제가 알기로는 예전에는 전화로 테스트를 했다고 하는데 이번에는 필기 전형에 알고리즘 문제 2개를 푸는 형태로 시험이 나왔다고 합니다. 문제 자체는 엄청 어려운 편은 아니지만 구현이 어느정도 되어야 하고, 또 이것이 의사코드로 작성하는 것이 아니라 완벽한 프로그래밍 언어로 코딩을 해야하는 문제이기 때문에 다소 애를 먹을 수도 있습니다. 따라서 라이브러리에 있는 이름들을 확실하게 기억하시는게 좋을 것 같고, 제 생각에는 네이버 알고리즘 전형도 어느 정도 문제 풀이를 연습하시는게 좋을 듯 합니다.
결론
면접을 위한 알고리즘은 상당히 까다로운 테크닉이나 복잡한 알고리즘을 알지 않아도 좋으며, 이 정도가 적당하다고 생각합니다.
1) 삼성 지원 목표시 - 자료구조의 사용법(STL or 구현, 스택, 큐, 벡터), 기본 알고리즘(완전 탐색, 분할 정복, DFS, BFS), 중급 알고리즘(동적 프로그래밍, 트리)
2) 쿠팡 지원 목표시 - 위와 비슷
3) 네이버 계열 - 최적의 수행시간을 지키는 알고리즘 보다는, 문제를 정확하게 해결할 수 있는 능력