Experience/소프트웨어 마에스트로

[소프트웨어 마에스트로] 소마 코딩 테스트 합격하는 법, 합격 팁 (소마 코딩 테스트 준비 방법)

koh1018 2022. 3. 29. 02:31
반응형

/*** 필자의 주관적인 견해가 담긴 글입니다.

각자 공부법이 다르고 기수마다 편차가 있을 수 있으니 참고용으로 사용해주세요 ***/

 

 

소프트웨어 마에스트로 13기 1차, 2차 코딩 테스트 합격 후기/팁 ▼

https://kbwplace.tistory.com/139

 

[소프트웨어 마에스트로] 13기 1차, 2차 코딩 테스트 합격 후기 (소마 코딩 테스트 문제 유형)

위 공식 일정표와 같이 서류 제출 후 약 2주 뒤에 1차 코딩테스트를 보고 정확히 2주 뒤에 2차 코딩테스트를 봤다. /*** 글 맨 아래 13기 문제 유형 총 정리 표가 있습니다. ***/ 1. 1차 코딩 테스트 위

kbwplace.tistory.com

 

 

각 키워드로 나눠 핵심적인 것들 위주로 흐름을 설명하겠다.

 

1. 알고리즘 공부

코딩 테스트를 통과하기 위해선 무엇보다 기본적으로 알고리즘 실력이 어느정도 있어야한다.

 

소프트웨어 마에스트로 코딩 테스트 준비 알고리즘 유형

 

위 이미지는 소프트웨어 마에스트로 공식 유튜브에서 알고리즘 공부 방법 소개 중 잡아준 키워드들이다.

위에 언급된 알고리즘들의 개념을 모두 익히고 구현까지 할 수 있다면 합격할 가능성이 높다.

 

알고리즘 문제를 아예 처음 푸는 것이라면 입력을 받고 출력을 하는 것 자체가 어색하고 어려울 수 있다.

이럴 땐 백준 사이트에서 바로 푸는 것보다 코드업 기초 100제를 먼저 푸는 걸 추천한다.

 

코드업 기초 100제를 풀면서 입출력, 배열, 문자열 처리에 익숙해졌다면 알고리즘을 공부할 때다.

 

가장 좋은 학습 방법은

1. 유튜브에서 해당 알고리즘에 대한 개념 및 실제 풀이 영상 시청

2. 해당 문제 혼자서 풀 수 있을 때까지 반복 연습

3. 유사한 유형의 다른 문제들 풀기

이다.

 

 

문제 풀이는 백준의 '단계별로 풀어보기'를 통해 푸는 것을 추천한다.

백준은 문제 길이가 긴 편인데 이것을 단점으로 생각하는 사람도 있지만 필자는 장점도 있다고 생각한다.

코딩 테스트 문제 풀이는 독해력도 중요하기 때문이다.

긴 문제가 주어졌을 때 그 문제안에서 풀어야 하는 핵심 내용을 빠르게 독해하고 풀어나가는 실력도 굉장히 중요하다.

 

문제를 풀다가 30분~ 1시간 정도 고민하고 시도해도 풀리지 않는다면 남의 풀이를 검색해보고 익히는 것을 추천한다.

맞았더라도 남의 풀이를 보면서 자신의 풀이와 비교해보고 좋은 것은 배우는 걸 추천한다.

구글링은 '백준 (문제 번호) (풀이 언어)'로 검색하면 된다.

예를 들어 백준 1234번 문제를 모르고 파이썬을 쓰고 있다면 '백준 1234 파이썬'으로 검색하면 해당 문제의 풀이를 기록해둔 블로그가 많이 나온다.

 

이렇게 몇 개 알고리즘의 개념을 익히고 풀이를 배우다 보면 어떤 문제에서 어떤 알고리즘을 사용해야하는지 헷갈리는 순간이 온다.

이때를 넘기면 실력이 팍팍 오를 수 있다. (초중고때 수학 공부하던 경험을 떠올리면 된다.)

 

위 키워드들은 연관관계가 있다.

마치 독자적으로 있는 알고리즘 같아 헷갈릴 수 있지만 어느 정도의 이해를 위해 정리하자면 아래와 같다.

 

1. 재귀는 여러 알고리즘에 사용되는 도구, 또는 풀이 방법으로 생각할 수 있다. DFS를 구현할 때 재귀를 사용할 수 있으며 이 말은 DFS를 이해하고 잘 사용하기 위해선 재귀에 대한 이해와 학습이 충분히 선행되어야 한다는 것이다.

2. 백트래킹은 DFS를 기반으로한 알고리즘이라고 생각할 수 있다.

3. 동적 계획법(DP)에는 for문을 이용한 bottom-up 방식의 구현이 있고 재귀를 이용한 top-down 방식의 구현이 있다.

4. 최단 경로를 묻는 문제는 대부분 DFS말고 BFS를 사용한다.

 

그리고 처음 코딩 테스트를 하면 당황할 수 있는 부분이 있는데, 모든 문제가 알고리즘으로 풀리는 것은 아니라는 것이다.

구현(시뮬레이션)이라는 유형도 있는데 해당 유형은 별도의 알고리즘이 있다기보다 문제에서 주어진 상황을 자신의 문제해결력을 바탕으로 그대로 구현하는 것이다. 삼성과 같은 기업에서 많이 출제한다고 한다.

소프트웨어 마에스트로 1차 코딩 테스트에서도 구현 문제가 많이 출제될 수 있다.

이 때 당황하지 않고 주어진대로 구현하면 된다.

 

또 이 구현은 단순히 구현으로만 주어지기 보다 다른 알고리즘과 함께 합쳐져 조금 더 어려운 문제를 출제할 때 포함되기도 한다.

 

 


 

백준에는 solve.ac라는 연동 서비스가 있는데 자신이 푼 문제 수와 난이도에 따라 경험치를 획득하고 그에 맞는 티어 레벨이 주어지는 서비스이다.

성취감을 얻고 동기부여가 될 수 있기에 해당 서비스를 이용하는 것을 추천한다.

 

solve.ac 기준 골드 4 ~ 5 정도라면 소마 코딩 테스트는 어렵지 않게 통과할 것이다.

 

 

2. 전략 (SQL + WEB)

소프트웨어 마에스트로 코딩 테스트 대비를 하는데 알고리즘 공부만 한다는 것은 전략을 잘못 세운 것이다.

 

왜냐하면 SQL과 WEB 문제도 나오기 때문이다.

많은 사람들이 생소하거나 하기 귀찮다는 이유로 SQL과 WEB을 버리는데 이러면 합격하기 어려울 수 있다.

 

필자는 SQL과 WEB 문제를 챙길 것을 강력히 권한다.

특히 테스트가 얼마 남지 않았다면 알고리즘이 아니라 SQL을 공부해야한다.

 

SQL을 처음 해본다면 아래 강좌를 추천한다.

https://youtu.be/vgIc4ctNFbc

 

그리고 프로그래머스 SQL 고득점 Kit을 1회독 하는 것이 좋다.

https://programmers.co.kr/learn/challenges?tab=sql_practice_kit 

 

시간이 남는다면 추가로 삼중 조인, 서브 쿼리, 다양한 함수, 자연 조인 등 다양한 조인에 대해서 공부해두면 완벽하다.

 

WEB 문제는 기존에 HTML + CSS + JS를 다뤄봤다면 복기하는 수준이면 충분하다.

 

알고리즘 문제 대비 때문에 SQL과 WEB을 소홀히 하거나 버리는 사람들을 많이 봤는데 SQL + WEB만 풀고 합격하는 사람들을 많이 봤다.

특히 SQL은 절대 놓치지 말 것을 권한다.

 

(+ 23/01 추가 : 이번 14기에서는 WEB 문제가 빠진다고 합니다..ㅠㅠ SQL 열심히 챙기시고 전보다 알고리즘을 더 열심히 하셔야 할 것 같습니다. 추후 기수 모집에서 WEB 문제가 다시 등장한다면 유효한 전략입니다.)

 

 

3. 정보 모으기

처음 소마를 준비한다면 모르는 부분이 많을 것이다.

합격을 위해 여러 정보를 모으고 알아가는 부분도 중요하다.

 

1. 구글링을 통해 전년도 합격 후기 모두 훑기

2. 기출 문제 유형 (이전 기수 출제되었던 알고리즘 유형들) 정리하기

3. 해당 기수 소마 준비 오픈 카톡방 들어가기 (없으면 만들기)

4. 코딩 테스트 복기 Slack 오픈 스페이스 들어가기 (없으면 만들고 사람 모으기)

 

제일 중요한 것은 이전 기수분들의 후기를 보며 전반적인 과정을 알아가는 것이다.

그리고 알고리즘 공부가 어느 정도 되었다면 구글링을 통해 3~4개년 기출 문제들의 유형을 파악하고 정리해보는 것이다. 다 정리했다면 혹시 내가 익히지 못한 유형이 있는지, 알더라도 부족한 유형이 있는지 다시 점검해본다.

 

모르는 사람이 은근 있었는데, 매 기수마다 소프트웨어 마에스트로를 준비하는 사람들이 만든 오픈 카톡방이 있다.

관계자가 만드는 것은 아니고 똑같이 준비하는 사람 중 한명이 만들면 다른 준비생들이 들어가는 식이다.

해당 카톡방을 통해 문제 복기방, 스터디 구인등의 활동이 일어나니 들어가서 눈팅해주면 좋다.

특히 코딩테스트가 끝나면 문제 난이도 등에 대한 이야기가 많이 오고가는데 2차 코딩테스트, 면접을 준비할 때 용이하다.

단 카톡방의 사람들이 전체 지원자를 대표하는 것은 아니니 카톡방은 참고용으로만 사용하고 카톡방에서 나오는 이야기에 대해 일희일비할 필요는 없다.

 

 

4. 2차 코딩 테스트를 위한 전략

많은 사람들이 간과하는 점이 있는데 2차 코딩 테스트를 합격하기 위해서 가장 먼저 해야할 일이 있다.

 

바로 1차 코딩 테스트 복기이다.

많은 분들이(이전 기수분들도) 2차 코딩 테스트는 1차 코딩 테스트를 변형한 문제가 종종 출제 된다고 언급하셨다.

 

필자 또한 1차 코딩 테스트 4번 문제 (백트래킹)를 복기하였고 2차 코딩 테스트 1번 문제 (백트래킹 + 구현)를 풀 때 큰 문제 유형이 유사함을 느끼고 빠르게 풀 수 있었다.

 

2차 코딩 테스트 전날에는 1차 코딩 테스트 복기 및 풀이를 한 번 더 할 것을 추천한다.

 

위에서 언급한 Slack 방이 있다면 참여해 풀이를 다시 점검하고 공부하는 것이 좋다.

 

2차 코딩 테스트 문제는 면접 때 활용 될 수 있으니 2차 코딩 테스트도 복기해두는 게 좋다.

 

 


 

 

2~3개월 꾸준히 준비한다면 합격할 수 있을 것이다.

알고리즘 공부는 푸는 것도 중요하지만 기록하는 것도 중요하다고 생각한다.

까다로웠던 문제가 있다면 이를 블로그에 기록하고 까먹을 때쯤 다시 복기하면 빠르게 성장할 수 있다.

 

 

소프트웨어 마에스트로 13기 1차, 2차 코딩 테스트 합격 후기/팁 ▼

https://kbwplace.tistory.com/139

 

[소프트웨어 마에스트로] 13기 1차, 2차 코딩 테스트 합격 후기 (소마 코딩 테스트 문제 유형)

위 공식 일정표와 같이 서류 제출 후 약 2주 뒤에 1차 코딩테스트를 보고 정확히 2주 뒤에 2차 코딩테스트를 봤다. /*** 글 맨 아래 13기 문제 유형 총 정리 표가 있습니다. ***/ 1. 1차 코딩 테스트 위

kbwplace.tistory.com

 

반응형