배경
본격적으로 구직을 하며 서류탈락을 종종 경험하던 와중에 코딩테스트 기회를 부여받아 응시하게 되었다. 여기도 사실 내가 서류 탈락을 이미 당한 기업이었는데, 인사팀과 연락하는 과정에서 감사하게도 테스트 기회를 부여받을 수 있었다. 생각해보니 인생 첫 코딩테스트다. 이 테스트는 한 번도 사용해본적 없는 구름LEVEL에서 진행되었고, IDE에 적응할 겸 며칠간 구름LEVEL에서 문제를 40개정도 풀어보고 시험에 응시했다. 네 시간, 네 문제가 주어졌고 당연히 시간보다 빨리 풀고 야식 먹을 생각을 하고 있었는데 시간을 꽉 채우고도 원하는 만큼의 결과를 얻지 못했다.
테스트 내용
부여받은 네 개의 문제는 아래와 같다. 아직 공고 중인 기업이라 지금 시점에 자세하게 작성하기는 어렵고 대략적인 아웃라인만 적어본다:
1. 문자열 - 일부 통과, 나머지 런타임 에러
- 주어진 텍스트 본문에 포함된 특수한 문자열을 1) 식별하여, 2) 주어진 규칙에 따라 가공한 뒤, 3) 기존 자리에 대체를 하되, 4) 정렬된 상태로(변형된 순서대로) 삽입해야 하는 문제
- 정규식 내에서의 대괄호 처리가 원래 알던대로 동작하지 않아 애를 먹었고, 여기서 시간을 많이 소요함
- 문자열을 저장하고 가공하는 과정에서 여러 자료구조가 필요했음
- 테스트는 통과했으나 제출 시 도저히 감이 잡히지 않는 런타임 에러가 발생하여 잡을 수가 없었음
- 쉽게 봤는데 완벽하게 못풀어내서 너무 아까웠던 문제
- 체감난이도: 프로그래머스 레벨 2
2. 유효성검사 - 통과
- 주어진 규칙에 따라 유효성 검사 로직을 만들고, 수행 후 검사 수행 결과를 P/F로 표기하는 문제
- 보조 규칙이 있다는 걸 뒤늦게 알아 통과 안 되던 테케 해결
- 체감난이도: 프로그래머스 레벨 1
3. SQL - 실패
- 세 개의 테이블을 가지고 지문에서 원하는 대로 가공하여 결과값을 보여주는 문제
- 그룹, 랭크, 조인, 정렬, 서브쿼리 등 골고루 사용함
- 일단 작성하여 결과값을 뽑아내기는 했으나 테스트케이스를 제공해주지 않아 뭐가 틀렸는지 아예 파악할 수 없었음
- 체감난이도: 프로그래머스 레벨 4~5
4. BFS - 실패
- 노드 간의 네트워크 정보가 주어질 때, 각 노드에서 모든 노드를 돌아 자기 자신에게 오기까지의 최소값의 평균을 구하는 문제
- 처음에 모든 노드를 순회해야한다는 생각에 DFS 구현 시도, 여기서 시간 많이 날려먹음
- 모든 경우의 수에 대해 각각의 최소값을 구하는 문제라는 걸 깨닫고 BFS로 선회했으나 결국 BFS 로직 작성 중에 시험이 종료됨
- 체감난이도: 프로그래머스 레벨 3
소감
조금 아깝다. 1, 3번은 무조건 맞출거라고 생각했는데 쉽게봤다가 시간 많이 날려먹은 것도 아쉽고, 특히나 아예 시도를 못한 것도 아니고 방향을 잘못 잡아 4번을 끝까지 작성 못한 건 계속 기억에 남을 것 같다. 테스트 직전에도 BFS문제 하나 풀고 들어갔는데... 코딩테스트 기한이 7일이여서 아직 2일정도는 더 공부하고 볼 수도 있었으나 이날만큼 집중할 수 있는 최적의 날이 이후에는 없었다. 그리고 아마 좀 더 있다가 응시했다고 하더라도 결과가 운에 좌우되는 정도가 아니였을까 싶다. 쉽거나 적당한 난이도의 문제를 압도적으로 풀어내기엔 아직 내 코딩테스트 능력이 미완성이다보니 나온 결과이므로 아쉽긴 해도 후회하지는 않는다.
Note
1. 문제 구조화하는 단계를 조금 더 세분화해야겠다.
2. 프로그래머스에 남은 문제들 다 풀어야겠다.
3. 역시나 프로그래머스가 여러모로 편리하다.
4. 성장이 더디긴 하지만 실력이 조금씩 늘고있기는 한가보다.
'생각들' 카테고리의 다른 글
| 2년차 주니어 개발자의 이직 이야기 4 - 얼어붙은 시장 (1) | 2023.11.20 |
|---|---|
| 나는 어떤 개발자가 되고싶은 걸까? (2년 회고) (1) | 2023.10.31 |
| 2년차 주니어 개발자의 이직 이야기 3 - 면접에 관하여(시리즈C 스타트업 후기) (0) | 2023.08.06 |
| 2년차 주니어 개발자의 이직 이야기 2 - 다시 돌아갈 수만 있다면 어떤 회사를 선택해야 할까? (2) | 2023.07.19 |
| 2년차 주니어 개발자의 이직 이야기 1 - 경험과 성장을 위한 도전 (0) | 2023.06.23 |