개발 일기

2021 KAKAO BLIND RECRUITMENT 후기

Cluster-taek 2020. 9. 18. 15:36
반응형

2020년 9월 12일 토요일 생애 처음으로 카카오 블라인드 공채 시험을 치뤄봤다. 시험시간 30분 연장으로 인해 총 도전시간은 14:00~19:30까지의 5시간 반. 전산학기초 과목으로 배운 얄팍한 지식과 기본적인 Java문법만 익히고 있던 나에게는 사실 거의 호기심에 가까운 도전이었다고 봐도 무방했다. 별 생각없이 카페에 앉아 테스트 홈페이지에 접속했다.

 

보통 문제가 주어지는 코딩을 할때 화면을 분할하여 사용하던터라 전체화면이 아니면 문제가 뜨지 않는 공채 테스트에 시작부터 당황했다. 찬찬히 Eclipse에서 문제를 주석처리하고 읽어보려하니 이미 시간은 30분 경과. 애초에 재미삼아 풀어본다는 생각이었기에 한 문제라도 풀어보자 하고 시작했다.

 

1번 문제는 아이디 입력 시 조건에 맞는 아이디로 변환을 시켜주는 문제였다. 문제는 장황했으나 내부 로직 자체는 크게 어려움이 없을거라 판단하고 7단계의 로직을 하나씩 풀어나갔다. StringBuffer를 쓰면 훨씬 쉽게 해결될 문제를 익숙하지 않다는 이유로 String 내부 메소드만을 고집하다가 특정문자 중복처리에서 고생을 좀 했다. 여차저차 만들어서 테스트 케이스를 돌려보니 자꾸 한가지가 오류가 난다. 문제 상에 쓰여있지는 않았지만 테스트 케이스를 뜯어보니 모든 조건에 맞을때까지 로직을 반복해야하는 과정이 필요하다는 사실을 깨닫고 함수를 재귀화시켜 해결했다.

 

1번 문제를 풀고 시간을 보니 이미 남은 시간은 3시간 반이었다. 이래서 미리 환경 세팅도 해놓고 Programmers를 통해 연습도 해보는 과정이 필요하구나 라고 절실히 느끼며 2번 문제와 마주했다. 2번문제는 Combination을 통해 구현을 해보는게 좋겠다 싶어 머리를 싸매며 Combination함수를 만들다가 문득 'Python이라면 함수가 있지 않을까?' 라는 생각이 들었다. 역시나. 또 30분을 삽질에 날려먹고 2번은 Python으로 해결하기로 하고 우선 3번으로 넘어갔다. 

 

3번 문제는 데이터와 쿼리문을 정제하는 문제였는데 중간에 멍청하게 infoArray와 queryArray를 헷갈리지만 않았어도 시간을 20분은 단축할 수 있었으리라 생각했다. 비교적 어렵지 않게 해결하고나니 테스트 케이스는 가볍게 통과했지만 효율성 체크에서 모두 시간 초과가 났다. 익숙하지 않은 Buffer보다 간단한 split을 쓰려했던 게 화근이 아니었나 싶다. 문제는 풀어놓고 효율성 체크를 뚫어보려 최적화 하는 과정에서 이미 또 한시간이 지나가고 있었다.

 

4번 문제는 최적경로 설정 문제였다. TSP(Traveling Salesman Problem)를 풀어본 적이 있기에 최적경로는 자신있다 생각하고 문제에 접근했다. 하지만 TSP는 애초에 Satisfied Solution을 찾는 문제고 이 문제는 반드시 존재하는 단 하나의 최적경로를 찾아내는 문제였다. 고민 끝에 길을 지날때마다 그 경로 배열에 가중치를 설정하는 방식을 사용하였지만 제자리를 맴돌다가 남은 시간을 보고 2번으로 돌아갔다.

 

이떄부터는 Python으로 넘어갔다. 아직 숙련도가 붙지 못해 버벅이는 Python이었지만 내장함수의 강력함을 알기에 IDLE를 켜놓고 바로 코딩을 시작했다. 데이터 처리를 하고 sample을 통해 메뉴를 뽑아내고 나니 시간이 종료되었다.

 

웬만한 로직은 머리 싸매고 하루 이틀 새면 만들 수 있을거라 생각했지만 시간 분배와 테스트 방식에 대한 적응까지는 미처 생각하지 못했다. 평소 라이브러리를 쓰지 않고 무조건 직접 만드는 버릇을 갖고 있었으나 시간 내에 만들어야 하는 테스트에서 라이브러리 로직을 사용하지 못하는 것은 독이었다. 또한 자료구조와 알고리즘에 기초적인 지식조차 없이 맨땅에 헤딩하는게 얼마나 멍청한 짓인지도 깨달았다. 스스로의 멍청함에 감탄하는 시간이었다. 다음 코딩테스트 경험이 아닌 실전으로 준비를 해보고 싶어졌다. 내년 이 맘때에는 합격 메일을 받고 쓰는 글이기를.

 

2022 KAKAO BLIND RECRUITMENT까지 준비

# 2021년 포함 전년도 코딩테스트 문제 직접 구현

# Programmers의 연습 문제 풀기로 해당 환경에 적응

# Python 숙련도를 높여 상황에 따라 필요한 언어로 구현

# 알고리즘과 자료구조에 대한 기초 소양을 쌓아 출제자의 의도 파악

 

 

반응형