2017년 10월 14일 토요일
카카오 블라인드 채용 테스트 후기 (2차)
예상치도 못하게, 2차 테스트는 RESTful API + json 조합이 나왔다. 내용은 이렇다.
카카오에서 API 서버를 제공하는 데, API 호출 횟수가 50번/초로 제한된 상황에서 10분동안 얼마나 정확하고 많은 처리를 응답할 수 있느냐였다.
node.js 로 할까하다가 문제풀이에 더 초점이 맞춰진 형태면 어떡하지싶어서 C++로 준비했었는데, 생각보다 그렇진 않았다.
테스트는 오후 2시부터 10시까지 8시간동안 진행됐고, 난 최종 32000점으로 광탈예상이다. (참고로 1등은 23만점정도)
오후 5시 좀 넘어갈때는 2만점 조금 넘겨도 50등이길래 좋았는데, 후에 파이썬이나 다른 언어로 REST API 공부를 마친 사람들이 있었는지, 평균 점수들이 쭉쭉 오르더라.
테스트가 끝나고나니 결과가 좀 이해되는데, 나는 그냥 게시글마다 전부 next_url이 있어서 그거 타고 쭉 가면 되는줄 알았더니 그게 아니었나보다. 아직 next_url이 없을수도 있고 자신과 같을 수 있는데, 그때 재요청을 하면 된다고한다. 어쩐지 계속 다른 사람보다 처리량이 낮더라했다.
정직하게 구현했다면 10만점정도는 나왔다는 것 같고, 쓰레드로 어떻게 잘 비벼보거나 조건들 잘 읽으면 파훼법이 나오는 듯.
람다식 처음 써봐서 이게 뭐지 찾느라 시간 다 보냈다. 비동기랑 동기 같이 쓰다가 피보고, 처리속도가 너무 느려서 중간에 쓰레드 쓰려고 삽질하고 별짓 다한거같다. 여튼 진짜 문제는 그게 아닌거같았고... 재요청해야되는거 몰라서 끝까지 쉐도우복싱만 하다 끝났다.
테스트 방식이 특이했지만 재밌긴했다. 근데 그때도 C++로 할지는 의문.
17.10.20 수정
2차 합격 커트라인은 80000점이라는 공지가 떴다.
2017년 9월 17일 일요일
카카오 블라인드 채용 테스트 후기 (1차)
2018 카카오 블라인트 채용 테스트 1차에 참가했다.
요즘엔 기업들이 programmers.co.kr 같은 플랫폼을 사용하여 대회 또는 시험을 진행하는 같다. 제출이나 문제 설명은 codecademy 와 비슷한 방식이고, 문제를 제출하고 검사하는 방식은 TopCoder와 유사하게 class 나 어떤 함수의 반환으로 채점한다.
1차 온라인 테스트는 https://programmers.co.kr/competitions/35/welcome-kakao 또는 https://welcomekakao.com 에서 진행되었다.
5시간동안 총 7문제가 주어졌었는데, 문제는 난이도순이 아닌 것 같았다.
1,2,3,6,7,5번 순서대로 풀었었고, 4번은 읽고 나니 테스트 종료 15분 정도 남았었다. 제출하기 전에 테스트케이스를 돌렸는 데 몇 개가 틀렸다. 디버깅 할 시간도 없고 해서 제출하지 않았다.
7번에서 시간을 너무 보내버린 나머지 시간이 부족했다. 문제 조건을 자세히 읽다보니 고려해도 되지 않은 부분이 있었는 데, 그걸 너무 늦게 알아서 늦었다.. 다음부터는 꼭 문제 조건을 침착하게 읽어야겠다.
정확히는 기억이 안 나는데, 1번 문제는 비트의 모양을 한 문자열->숫자를 반대로 디코딩하는 거였고, 2번은 점수에 대한 정보가 담긴 문자열을 뜯어 점수를 계산하는 구현 문제였다.
3번은 LRU를 시뮬레이션 하는 거였는데, 제출했더니 부분 문제에서 우수수 틀렸다. map을 써서 cache hit 타이밍을 업데이트하고 그랬는 데, 왜 틀렸는 지 모르겠다. 나중에 풀이를 공개해주면 좋겠다.
4번은 셔틀 버스 9시부터 t분마다 총 n회 운행하고 한 번에 최대 m명만 탈 수 있을 때, 최대한 늦장부리면 몇시 몇분 버스를 타느냐였는데, 나중에 꼭 풀어보고싶다.
5번은 두 집합에 대해 A∩B / A∪B 를 구하는 거였는 데 이것도 map 쓰면 된다.
6번은 연세대 대회 중에 뿌요뿌요랑 비슷했다. 대신 dfs를 안 쓰는 방식
7번에서 좀 고생했는데, ISO 형태 비슷하게 ms초까지 적힌 문자열을 뜯어서 정해진 범위 내에서 겹치는 구간의 개수를 구하는 문제였다. 구간을 Open/Close하면서 범위 내의 구간의 개수를 구했는 데, Codeforces Round 422-C 에서 사용해봤던 방법이었다. (같은 문제는 아니다.) 시간복잡도는 대략 O(nlogn)
전체적으로 문제가 "엥 이거 완전 억지 아닌가"라는 느낌은 없었다. 다만, 프로그래머스 사이트 자체의 특성인건지 입력과 출력의 범위가 제대로 주어지지 않는 경우가 몇 있어서, 최소/최대 케이스를 테스트하기가 어렵다. main() 함수를 따로 구현해서 테스트 하는것도 일이다..
PS) ACM을 앞두고 너무 실력이 부족한 것 같아 걱정이다. 새로운 알고리즘을 배우기엔 늦었고, 기존의 발상과 구현 능력을 다듬어야 할 때 같다.
17.09.28
몇일 전에 메일이 도착했다. 우선은 합격했는데 컷이 4문제였다고 한다. 그리고 카카오에서 풀이를 공개하였다. 글은 http://tech.kakao.com/2017/09/27/kakao-blind-recruitment-round-1 에서 확인할 수 있다.
피드 구독하기:
글 (Atom)

