25.04.25 15:00 ~ 17:00에 온라인으로 진행되는
CJ 올리브네트웍스 코딩테스트를 보고왔다.
총 3문제를 120분간 푸는 형식이었고,
생각보다 난이도는 평이해 3솔을 따낸 것 같다.
(생각치도 못한 엣지 케이스가 없다면..)
(25.05.02 추가)
결국 합격했다!! 다음은 Ai 역량검사와 면접인데, 알찬 후기로 찾아뵙겠습니다 (꾸벅)
나는 SOFTWARE ENGINEER로 지원했다.
이번 공채는 CJ 계열사들이 동시에 진행했는데,
올리브네트웍스가 모바일 개발 경험을 보는 거의 유일한 계열사였다.
그래서 지원했고, 자소서에서는 기본적인 소개에 더해
CJ ONE 앱에 대한 분석과 발전 방안 등을 포함했다.
결과는...
합격!!
인성검사는 별거 없었다.
주어진 기간 안에 하면되고, 여느 기업의 인성검사처럼
시간내로 자신의 성향과 맞는 것들을 잘 골라주면 된다.
오랜만에 세 문제 모두 풀어 기분이 좋았다..
물론 그만큼 다른 사람들도 잘 봤다는 소리겠지만,
일단 풀었다는게 중요하지 않을까..??
그럼 문제가 어떤식으로 나왔는지 짚어보자.
당연히 문제 내용은 공개하지 않고
예상 난이도, 푸는데 걸린 시간,
내가 접근했던 알고리즘 등을 정리하려한다.
모든 문제는 부분 점수가 있어 최선의 알고리즘이 아니더라도
점수를 일부는 얻을 수 있게 설계해놓았다.
또한 언어 제한이 사실상 없다고 볼 수 있다.
python과 kotlin 모두 선택이 가능했는데,
더 편한 python을 사용해서 풀었다.
예상 난이도 | 사용한 알고리즘 | 구현시간 |
---|---|---|
실버 4 | 단순 구현 | 30분 |
우선 문제 자체는 재밌는 요소가 많았다.
얼핏 봤을 때 DP도 쓸 수 있어보이고, 그리디처럼도 보였다.
그래서인지 처음에는 어렵게 접근했고,
풀다보니 막히는 부분이 있어 갸우뚱하며 문제를 다시 읽어봤다.
그런데 세상에.. 데이터 제약 조건이 내 생각보다 터무니없이 작았다.
이래서 문제를 꼼꼼하게 읽어야 하나보다..ㅠ
결국 별다른 알고리즘 없이 if 분절로 무식하게 접근해도 풀릴만한 문제였다.
비유하자면 10번째 피보나치수 구하기 같은 느낌..?
피보나치수를 구하는 수많은 알고리즘이 있지만 10번째 정도라면
비효율적이라고 소문난 재귀를 통해 구해도 별 문제가 없을 것이다.
여기서 30분이나 소비한게 아까웠지만 어쩔수 없지..
얼른 제출하고 다음 문제로 넘어갔다.
예상 난이도 | 사용한 알고리즘 | 구현시간 |
---|---|---|
실버 1 | 이분 탐색 | 40분 |
이분탐색을 사용해야겠다고 마음 먹었다면,
알고리즘적으로는 더 이상 고민이 필요 없었다.
다만 이분 탐색을 통해 답을 구해나가는 '구현'과정에서
신경쓸 부분이 많은 문제였다.
특정 키워드를 언급하는 것만으로 문제 유출일거 같아
길게 적지는 않겠지만, 평소 라이브러리가 쉽게 해결해주던
기능을 직접 구현하는 느낌이어서 신선했다.
예상 난이도 | 사용한 알고리즘 | 구현시간 |
---|---|---|
골드 5 | 자료구조, 정렬 | 45분 |
이 문제는 적절한 자료구조를 활용해 데이터를 정렬하고,
어떻게 답을 유추해가는지가 핵심인 문제였다.
나는 python으로 문제를 풀었기 때문에,
set을 사용해 인덱스를 정리하고 heap을 통해
원하는 조건에 맞는 케이스를 가져오는 식으로 풀었다.
솔직히 내 풀이가 정답이라고는 말하지 못하겠다.
답은 제대로 나왔지만, 분명 더 나은 알고리즘이
있을 거라는 생각이 들어 풀면서도 석연치 않았다.
그럴법도 한게, 이 문제의 데이터 제한이 굉장히 애매했다.
예를들어 내 풀이가 O(n^2)의 시간복잡도를 가진다고 하자.
그럼 n = 100,000의 데이터셋이 주어졌을 때,
시간 초과가 난다는걸 풀어보지 않아도 알 수 있다.
하지만 n = 5,000 정도라면?
대충 2천 5백만 번의 시행이 이루어지는데,
이정도면 파이썬 기준 1초 남짓이면 연산이 끝난다.
O(n^2)의 효율적이지 못한 풀이라는 생각이 들어도
문제를 푸는데는 지장이 없을 거라는 이야기다.
3번이 이런 케이스로, 어쨌든 푸는데는 문제가 없어보여 그냥 제출했다.
이번에 프로그래머스로 카카오 코테 문제를
몰아서 풀었던게 큰 도움이 됐다.
각 문제 시간 제한을 1시간으로 둬서 실전처럼 연습한 덕에,
시험에서도 침착함을 유지할 수 있었던 것 같다.
결과는 나오기 전까지 모르는거지만,
혹시 모르니 면접준비도 미리미리 해둬야겠다.
안녕하세요 블로그 잘보고 있습니다~
혹시 채용 공고는 주로 어디서 확인하시나요?