SW마에스트로 15기 1차 코딩테스트 복기
나의 첫 코딩테스트
문제는 총 5문제였고, 알고리즘 4문제, SQL 1문제가 나왔다.
난이도는 생각보다 쉽게 나왔다. 체감상 브론즈2~골드5 정도였던 것 같다
제한시간은 문제당 10초였고, 메모리는 2GB였다. 백준에서는 많아봐야 512MB였는데 2GB나 줘서 편안하게 풀었던 것 같다.
시험시간은 총 120분이었다.
SQL을 먼저 풀었고, 알고리즘 3문제를 풀었더니, 1시간이 남아있었다. 마지막 한 문제에 40분 정도 쓴 것 같다.
5문제 전부 테스트 케이스는 맞췄는데, 합격 여부는 아직 미지수이다.
코딩테스트는 프로그래머스에서 진행되었고, 모니토앱(?)으로 신분증 검사하고, 앞뒤좌우상하를 카메라로 검사하고, 시험볼 때는 노트북 웹캠과 폰카메라 두 기기로 동시에 녹화 및 감독하며 시험을 진행했다. A4용지에 뭐 써진 거 없는지 검사도 하길래 생각보다 철저하구나.. 싶었다.
기억나는대로 문제를 정리해보자면,
구현 (약 브론즈 2)
배달요금을 계산하는 아주 쉬운 문제였다.
기본거리가 주어지고 기본거리까지는 기본요금만 받다가, 기본거리가 넘어가면 km당 1000원씩 추가되는데, 그 비용을 구하는 문제였다.구현 (약 실버 5)
직사각형 내부를 왼쪽 끝부터 시작해서 오른쪽 끝까지 위아래로 지그재그로 직선을 그어서 만들어진 삼각형들의 넓이를 오름차순으로 정렬하는 문제였다.구현 (약 실버 4)
HTML과 CSS의 id와 class 특징을 따와서 만든 알고리즘 문제였다.
css에서 특성들은 “(1):id, (2):class, (3):더 나중에 선언된 것”의 우선순위로 결정되는데 이를 구현만 하면 되는 문제였다.
차분하게 풀었으면 더 빨리 풀었을 텐데, 긴장이 되어서 25분 정도 쓴 것 같다.그리디 (약 골드 5)
예를 들어, [2, 5, 6, 13, 14, 16, 35]의 배열이 주어지면,
(1) 각 요소들을 배열의 크기만큼 나눈 것이 인덱스가 되도록 정렬한다.
(2) (1)이 가능하지 않은 요소들에 대해서는 리스트가 가장 작은 리스트가 되도록 한다.
예를 들어, [14, 2, 16, 6, 35, 5, 13]가 [14, 16, 2, 6, 35, 5, 13] 보다 작은 리스트이다.
이 문제에 약 40분 정도 썼다.SQL : group by, order by, limit
join이 어렵게 나올까봐 조마조마했는데,
조금만 생각해서 저 3가지를 쓰면 간단하게 풀리는 문제가 나왔다.
2차 코딩테스트 준비
많이 연습했던 다이나믹 프로그래밍이나, DFS/BFS, Union-find 등등의 알고리즘이 안나와서 좀 밋밋했다.
긴장이 너무 많이 돼서 몰입이 끊어지는 현상이 자주 발생했다. 문제가 무난해서 다행이었다. 문제가 조금만 어려워졌으면 더 당황했을 것 같다.
다음 2차는 DP나 DFS/BFS가 무조건 나올 것 같은 예감이 강하게 들어서 더 집중적으로 풀어야겠다.
남은 일주일 동안, 하던대로 문제 많이 풀고, 훈련해야겠다.