Post

SW마에스트로 15기 2차 코딩테스트 복기

SW마에스트로 15기 2차 코딩테스트 복기

문제는 총 5문제였고, 알고리즘 4문제, SQL 1문제가 나왔다.
난이도는 체감상 1차보다 훨씬 어려웠다. 난이도가 높아서 내 실력으로는 가늠할 수가 없었다. 최소 평균 골드3 정도?
제한시간은 1차 때와 똑같이 문제당 10초였고, 메모리는 2GB였다.

시험시간은 똑같이 총 120분이었다.
SQL을 먼저 푸는데, 변수를 활용해야하는 문제가 나와버렸다. 기존에 알고 있던 내용으로 풀 수 없을까 고민하다가 포기했다..
1번은 20분 이내로 풀었고, 2,3,4번이 안풀려서 계속 왔다갔다 거리다가 시간이 다 지나갔고, 결국 2번을 깡 DFS로 풀고 제출했다.
제출하자마자 든 생각은,,

“아.. 떨어졌다..”

너무 허무했다. 1차 때, 10분 남기고 5문제를 다 풀어서, 2차도 해볼만 하다고 생각했다.
소마 출신 친구가 2차는 정말 많이 어렵다고 얘기했었는데, 나는 할 수 있다고 생각했다.
그래도 알고리즘을 완전 초보상태에서 약 100일 만에 이 정도면 많이 성장했다고 생각한다.


고통스러운 문제 복기를 해보자면

  1. 구현 (약 실버 2)
    문자열의 개수를 이용한 문제였다.
    정해진 문자수를 초과하면 다음 줄에 써야하는 규칙(?)을 지켜서, 총 몇 줄을 쓰게될 것인지 계산하는 알고리즘이었다.

  2. DP (약 골드 3~4)
    떨어지는 사과를 바구니로 가장 많이 담을 수 있는 개수를 구하는 문제였다.
    예를 들어, 폭이 7칸이라고하면, 바구니는 1번째 칸, 7번째 칸에 하나씩 총 2개가 있다.
    그 두 바구니를 왼쪽,가만히 있기,오른쪽 이 세 가지 움직임을 선택할 수 있다.
    DFS로 풀면서, ‘아 이거 무조건 시간초관데..’라는 생각이 들었지만, 그대로 꾸역꾸역 구현했다.
    하지만, DP였죠?

  3. 분할 정복, 이진 트리(?) (최소 골드 3 이상)
    포화 이진 트리에서 모빌을 회전하여 정렬하는 문제였는데, 어떻게 접근해야할지 계속 고민했다.
    그렇게 20분이 지났고, 그냥 포기했다..
    내년에 보자

  4. 비트연산, DP (난이도 추정 불가)
    계속 시뮬레이션 해보면서, 규칙성을 찾으려고 노력했지만, 결국 못찾고 포기했다..
    시험 종료 후에 SW마에스트로 준비 단톡방에 들어가봤는데, 플레에 가까운 수준이었다고 한다.
    여기에 투자한 시간이 너무 아까웠지만, 그것조차 나의 실력이라고 생각한다.
    너도 내년에 보자

  5. SQL : 변수 설정
    변수를 이용해야한다는게 느껴지면서, 변수를 선언해본 경험이 없다면 사실상 풀기 힘들었던 문제였다.
    SQL 고득점 kit에서는 보기 힘든 유형이었는데, 이게 나올 줄은 상상도 못했고, 대비를 못했다.
    고득점 kit만 풀어보면 된다며..


SW마에스트로 15기 코딩테스트 준비 회고

떨어진 이유를 잘 생각해보았다.

  1. 유형별 문제 풀이
    이번 코딩테스트를 준비하면서 주로 했던 것은 유형별 문제 풀이였다. 하지만 유형별로 문제를 풀면, 사실상 그 문제가 어떤 유형인지 알고 푸는 것이고, 즉 “해답을 알고 푸는 것“이나 다름 없었다. 처음 보는 문제를 보았을 때, 어떻게 풀어야할지 고민하는 과정을 생략한 상태로 훈련만 주구장창 한 것이다.

  2. 빈출 유형 위주의 문제 풀이
    학습 기간이 짧다보니, 역대 SW마에스트로 빈출 유형을 정리해서 그것을 위주로 공부하였다. 하지만, 이번 2차 코딩테스트에서는 그 방식이 먹히지 않았다. 특히 트리 구조에 익숙하지 않은 나는 3번 문제를 보고 무척 당황했고, 4번 문제의 비트 연산을 한 번도 다뤄본 적이 없었다.

  3. 그냥 경험 부족
    2번 문제에서 DP를 생각해내지 못했다는 것은 생각하는 힘이 부족했다는 것이기도 하지만, 실전 경험 역시 부족했다.


앞으로의 방향성

백준도 꾸준히 풀고, 알고리즘 스터디를 꾸준히 이어나가면서, 중요한 문제들의 사고 과정을 기록하고 정리해서, 남에게 설명해보는 것을 시도해봐야할 것 같다.
또한, 주기적으로 실전 코딩 테스트를 봐서 피드백을 해보는 과정이 필요할 것 같다.

약 100일 동안 짧게 준비했지만 너무 간절했다.
떨어졌지만, 그래도 한 편으로는 목표가 있었다는게 행복했던 것 같다.
현재 소속된 동아리에서 최선을 다 할거고, 최근에 ‘멋쟁이사자처럼’에 면접을 보고 왔는데 만약 붙는다면 그 안에서 목표를 이루고싶다.

혹시나 이 글을 보게 될 사람들에게 도움이 될 것 같아 링크를 남긴다. SW마에스트로 준비 톡방에 올려주셨는데 2차 코테 정리를 잘해놓으셨다.
https://newcodes.tistory.com/entry/소프트웨어-마에스트로-15기-2차-코딩테스트-회고


<2024-03-06>
1차 합격
내년엔 꼭 붙는다

This post is licensed under CC BY 4.0 by the author.