sw마에스트로 14기 코딩테스트 1차 후기
2023.02.25(토) 14:00 ~ 16:00까지 소마 14기 코딩테스트를 봤다. 당시에 서버도 터지고 노트북도 불안정해서 집중을 못했고 시험도 망쳤다.. ㅎㅎ;;
다시 복기를 하면서 생각하니 그 당시에는 문제도 제대로 이해 못 하고 풀이도 못 떠올려 너무 어렵다고 생각했는데... 차근차근 생각해 보니 다 풀만하고 쉬운 문제였다.. 1차 코테다 보니 메모리, 시간등의 문제도 널널 (입력의 개수가 다 1000 이하였음.. 그냥 다 완전탐색으로 구현만 해낼 걸 그랬군.. 바보)
1번 문제
간단한 정렬
1번 문제는 간단한 정렬을 하고 배열을 1회 순회하며 주어진 조건을 해결하는 문제였다.
아마 정렬만 하고 앞에서 부터 조건에 따라 if문으로 처리를 하면 쉽게 풀었을 것이다.
잘 못하면 반복문 두 개를 써야 할 수도 있는데, 이를 잘 풀어서 반복문 한 개로 한 번의 순회로 처리하는 것이다.
2번 문제
bfs? dp?
2번 문제는 설명하기도 어렵다.. 비슷한 문제를 찾아왔으니 참고하시길.. 조건이 너무 까다로운 것 같고 방법이 떠오르지 않아 Pass 했다 근데 이 문제도 bfs로 해결할 수 있을 것 같아 시간만 뺏김.. 다시 생각해 보니 조건을 맞추는 게 쉽지 않아 중간에 포기했다.
https://school.programmers.co.kr/learn/courses/30/lessons/87694
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
3번 문제는 비교적 쉬운 문제였는데.. 조건을 제대로 안 읽어서 못 풀었다.
입력으로 들어오는 배열의 원소가 20개까지이고 각 원소의 값이 10억인데 원소의 개수가 10억 개까지인 줄 알고 BFS를 하면 안 되는 줄 알았다.
사실 말도 안 되는 건데 왜 이렇다고 생각하고 반복문 한 번으로 해결해보려고 했을까 ㅜㅜ...
그냥 모든 원소에 대해 bfs 돌려서 완탐하면 되는 것이었다.
진짜 바보 ㅋ.ㅋ..
4번 문제도 마찬가지로 완전탐색을 해야 했다. 모든 경우의 수에 대해 다 탐색하면 되는 문제.. n의 범위도 6개까지라서 무조건 돌리면 되는 건데 문제를 제대로 이해하지 못해서 괜히 될 것 같은 3번에 시간을 다 써버렸다..
뒤늦게 구현하다 제출하지 못함..
시뮬레이션 문제처럼 가능한 경우의 수를 다 돌리면 되는 문제였다.
SQL 문제
String
String 문제가 나와서 당황했고, 손도 대지 못했다..
하지만 주어진 문제는 친숙했다ㅋㅋ... ORM의 폐해..
커서기반 페이징을 구현할 때, 커서를 움직이기 위한 정렬 기준을 만들 때
특정 컬럼의 길이를 다 똑같이 맞춰줘서 정렬시킬 수 있게 하는 것처럼 문자열의 길이를 맞춰주는 문제였다.
평범한 Join과 통계를 구하는 문제이지 않을까 했는데 하하..
글 작성시점에선 서버 장애로 인한 구제를 원하고 있지만 이 글이 올라갈 때면 어떻게 됐는지.. 2차 글도 작성하는 날이 왔으면 좋겠다 ㅎㅎ
하지만 좋은 경험이었기에 떨어져도 후회는 없을 것 같다.
코딩테스트가 워낙 약했는데 공부하는 방법을 이제 알 것 같다
시간을 들여서라도 문제가 좀 길고 문제를 빠르게 이해하려는 연습을 해야겠다!