일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자료구조
- dfs
- 백엔드
- Linux
- IntelliJ
- 프로그래머스
- 명령어
- 해시맵
- 이직
- HTTP
- 코딩테스트
- 배열
- 도커
- 스타트업
- 스프링부트
- spring boot
- 구현
- 스프링 부트
- 개발자
- 인텔리제이
- docker
- bfs
- 스프링
- 구름LEVEL
- Java
- HashMap
- spring
- 해결
- 문자열
- 주니어
- Today
- Total
마이의 개발 블로그
시리즈A 스타트업 코딩테스트 후기 본문
배경
본격적으로 구직을 하며 서류탈락을 종종 경험하던 와중에 코딩테스트 기회를 부여받아 응시하게 되었다. 여기도 사실 내가 서류 탈락을 이미 당한 기업이었는데, 인사팀과 연락하는 과정에서 감사하게도 테스트 기회를 부여받을 수 있었다. 생각해보니 인생 첫 코딩테스트다. 이 테스트는 한 번도 사용해본적 없는 구름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 |