[소프트웨어 마에스트로 13기] 코딩 테스트 1차 후기

Byuk_mm·2022년 3월 24일
5

Software Maestro

목록 보기
1/3
post-thumbnail

'소마' 어쩌다 준비하게 됐나요?


SW 개발 쪽으로 공부를 시작하던 1학년 때에도 소프트웨어 마에스트르 프로그램(이하 소마)은 알고있었고 좋은 프로그램이라고 생각하고 있었다.

하지만 이른바 고수들만 할 수 있는 프로그램으로 소문나 있는 소마에 지원하는 것조차 무서웠던 나는 그저 언젠가 실력을 많이 쌓고 지원해봐야지~ 하는 생각만하고 있을 뿐이었다.

그렇게 시간이 흐르고, 그 동안 열심히 임했던 En# 동아리 활동도 마무리가 되고 다음 목표를 탐색하던 나에게 소마라는 좋은 목표가 생겼다.

때문에 소마 코테를 볼겸 방학 때 처음으로 PS 공부를 했으며, '면접에서 떨구더라도 코테 2차까지는 뚫자' 라는 목표를 세우고 공부를 시작했기 때문에 짧은 방학 기간 동안 생각보다 많은 실력을 쌓을 수 있었다고 생각한다.

아래로는 나에게 좋은 동기 부여가 돼주었던 소마 13기 1차 코테에 관한 리뷰를 해보겠다!



1차 코테 개요


소마 코테는 알고리즘, SQL, WEB 세가지 분야에서 나온다.
이번 13기 선발 과정 1차 코테에서는 알고리즘 6문제, SQL 1문제, WEB 1문제가 나왔다.

검색 및 오픈북 금지였으며, 자동 완성 또한 금지였다.. 때문에 해당 제약 사항을 확인하고 파이참 IDLE을 이용하던 나는 자동완성을 끄고 2~3주 정도 자동완성 없는 환경에 적응하기 위해 노력했다.

1차 코테 같은 경우는 총 8문제 2시간 동안 진행됐다.
테스트케이스의 제한 시간은 모든 테케 합 100초였고 메모리 제한도 널널했기 때문에 그리디, DP스러워 보이는 문제라도 직관적인 풀이가 떠올리지 못하겠다면 바로 완전 탐색으로 방향 돌리자고 전략을 세웠다.

추가로 소마 코테는 정답 여부를 알려주지 않았다.. 기본적으로 주어지는 테케의 양도 한두개밖에 안됐으며, 내 코드의 예외 케이스를 찾을 시간도 없었기 때문에 내 예상 범위 내에서 테케가 돌아가는 수준까지 구현하면 바로 다음 문제로 넘어갔다.



문제 정리


문제 유출 불가능하고 제가 제대로 복기하지 못한 부분이 있을 수 있기 때문에, 100프로 신뢰는 하지 마시고 참고만 해주세요.

풀이 및 제출한 문제는 초록색으로 표기. 제출하지 못한 문제는 빨간색으로 표기.

풀이하지 않은 문제에 대해서는 체감 난이도 평가를 하지 않았습니다!

문제 번호알고리즘체감 난이도문제 내용내 풀이비슷한 문제
1번 단순 구현백준 S5여러개의 문자열을 주고 자동 완성 가능한 문자열의 갯수를 찾는 문제파이썬의 빌트인 함수인 startwiths 함수를 이용해서 어렵지 않게 풀이했다.프로그래머스_자동완성 문제
2번 구현 문제-새로운 자료 구조를 구현하는 문제, 대학교에서 많이 했던 것처럼..문제 보자마자 예외처리할 것도, 구현할 점도 많을 것 같다고 느껴서 읽지도 않았다..ㅎㅎ백준의 자료구조 구현 문제(ex. stack,heap 등등)
3번 수학백준 S4특정 n과 암호화하는 식을 알려준다. 이를 다시 복호화하는 문제수학적으로 접근해서 암호화하는 과정을 다시 역순으로 돌리는 로직을 구현했다.-
4번 완전탐색, 조합백준 S3문제의 조건에 맞추면서 주어진 리스트에서 3개를 뽑는 문제python itertools 모듈의 조합을 사용해서 완전탐색 돌렸다. n과 m문제처럼 백트래킹도 생각이 났었지만 빠르게 풀이하기 위해 사용하지 않았다.백준_n과 m 문제 시리즈
5번 수학, 이분 탐색백준 S3특정 리스트에 숫자가 추가될 때 마다 삼분값을 찾는 문제나는 인덱스 규칙을 찾아서 원소가 추가될 때마다 정렬을 한 후 인덱스의 값을 뽑아왔다. 하지만 하지만 시간 제한이 빡빡했으면 통과 못했을듯.. 힙과 이분탐색을 적절하게 활용하는 것이 정석 풀이 같다.백준_중앙값 찾기
6번 DFS백준 G5간선에 비용이 있고 특정 정점에서 시작하여 연결된 간선을 이동할 때 비용의 최고값을 구하는 문제전형적인 비용이 있는 DFS 문제라고 생각한다. 경로도 요구하지 않았기 때문에 재귀 돌리면서 최고값을 저장해주는 식으로 풀었다.백준_트리의 지름
7번 SQL프로그래머스 Lv3join과 between, 정렬을 이용하여 select하는 문제프로그래머스 SQL킷을 풀어봤으면 어렵지 않게 해결 가능한 수준이다. 단순 join과 between 키워드와 order by를 활용해서 조건에 맞게 출력!프로그래머스_join 문제 시리즈
8번 WEB-UI 요소 상태 셀렉터(UI element states pseudo-classes)를 이용하여 특정 컴포넌트 색 채우기 문제js없이 css로 저게 가능한지도 몰랐다... 시시간도 없었기 때문에 당연히 못풀었다.UI 요소 상태 셀렉터 개념 확인


후기


처음 경험한 코테치고 나름 만족스럽게 푼 것 같다.

사실 코테를 본 직후, 6번 DFS 문제빼고는 PS 공부할 때 많이 사용했었던 알고리즘을 활용하지 않은 것 같아 아쉬웠다.. 물론 이러한 풀이가 문제가 유도한 풀이가 아닌 대부분은 다 완전탐색스럽게 풀이해서 그런 것 같다... 즉, 시간과 메모리 제한이 엄격했다면 풀지 못했을 문제들이었다는 말이다.

하지만 복기할 때, 정석스럽게 풀이를 해보니까 배울점이 생각보다 엄청 많았다!!
2번 같은 경우는 추후에 문제를 얻을 수 있다면 다시 풀어보고 싶다.. (요즘 빡구현 문제가 코테에서 대세라고 하니까)

결과는 소프트웨어 마에스트로 13기 선발과정 1차 코딩테스트는 합격했다.

1차를 본 직후, 대충 오픈챗 등으로 반응을 보니 1차 합격은 어느 정도 확신했다. 때문에 2차를 위해 다음날부터 또 PS 달린 것 같다ㅎㅎ.

발표가 난 직후 대충 유추를 해보니까 1차 코테를 통해서 1/2정도는 탈락시킨 것 같았다. 아무쪼록 살아남아서 다행이라고 생각했다.

추후에 소마 코테를 준비하시는 분들에게 약간의 참고라도 된다면 좋겠다ㅎㅎ.

profile
어디야 벽벽 / 블로그 이전 -> byuk.dev

0개의 댓글