소프트웨어 마에스트로와 같은 교육이든, 아니면 취업이든
많은 사람들이 가장 힘들어하는 전형이 코딩 테스트가 아닐까 싶다.
일단 나한테는 코딩 테스트가 가장 힘들었다.
소프트웨어 마에스트로 지원 과정에서는 1차, 2차 두 번의 코딩 테스트가 진행된다.
코딩 테스트는 후기보다는 합불의 유무가 중요하니,,,,,
이번에는 소마 코딩 테스트가 어떻게 진행되는지, 어떻게 준비해야 할지 나름대로 팁을 풀어보려고 한다.
그렇다고 내가 알고리즘을 잘하는 것도 아니니, 정보를 적절하게 필터링해서 들어야 할 필요가 있다. ^^
백준 기준 실딱이 입니다 :)
소마 코딩 테스트 특
1. 엘리스 플랫폼
소마 코딩 테스트는 엘리스라는 플랫폼에서 지원된다.
올인원 디지털 교육 플랫폼 - 엘리스
우리 모두를 위한 교실, 엘리스와 함께 더 나은 기회를 만들어보세요
elice.io
소마 코딩 테스트를 진행하면서 해당 플랫폼이 있는 줄 처음 알았다.
엘리스는 소마에서 창업한 기업이라고 한다.
엘리스 플랫폼에서는 코딩 테스트를 시작하기 하루 전날까지 모의테스트 환경을 제공하는데
이 모의테스트를 꼭 체험해보길 추천한다.
모의테스트를 체험하지 않는다면 익숙하지 않은 UI로 인해 당황할 수 있다.
언어는 앵간 다 지원해주는 것 같다.
알고리즘은 다음 언어를 지원한다.
C, C++, Python3, Java, Javascript, C#, Swift, Go, Kotlin, PHP, Lua, F#, Rust, Ruby, Scala
SQL은 MariaDB, PostgreSQL 지원하고
웹은 HTML, CSS, Javascript 지원한다고 나와있다.
2. 웹과 SQL 문제.
알고리즘에 대한 문제만 나오는 다른 코딩 테스트와 다르게 소마 코딩 테스트에서는 웹 문제와 SQL 문제가 나온다.
아무래도 소마에서는 6개월간 프로젝트를 진행하고,
프로젝트를 진행하기 위해서는 DB와 웹에 대한 지식이 필수적이기 때문에 이런 문제가 나오는 것 같다.
12기 당시에는 알고리즘 문제가 5문제, 웹 한 문제, sql 한 문제
13기에는 알고리즘 3문제 웹 한 문제, sql 한 문제 총 다섯 문제가 나왔다.
3. 인터넷 검색 불가능.
이게 제일 중요한 부분인 것 같다.
구글링만 된다면 웹이든 SQL이든 알고리즘이든 풀 수 있는 문제가 많아지는데
머릿속에 있는 지식만을 가지고는 풀기가 어렵다.
온라인 시험 시에는 화면 공유와 캠을 둘 다 켜기 때문에
코딩 테스트에 필요한 지식을 외워야 한다.
4. 문제가 맞았는지 틀렸는지 모른다!
마지막으로 코딩 테스트를 진행하는 동안 단 하나의 테스트 케이스만을 제공한다.
해당 테스트 케이스에 적합하게 문제를 풀었다고 해서 맞았는지 틀렸는지 알 길이 없다.
히든 테스트 케이스에서 갈릴 수도 있다,,,,
그러므로 백준과 같이 틀린 이유를 알려주지 않는 플랫폼에서 코딩 테스트를 준비하는 것을 추천한다.
코딩 테스트
알고리즘
기억나는 대로 적어보자면
주로 구현 위주로 나왔던 것 같다.
12기 문제 기준으로 분할 정복, 시뮬레이션 문제가 나왔던 게 확실히 기억난다.
너무 오래돼서 가물가물하므로 확실하게 기억이 나는 것만 적어본다.
분할 정복은 2차원 배열에서 4구역씩 나눠가면서 뭔가 찾는 문제가 나왔고
시뮬레이션은 1차원 배열 안에서 사람이 조건에 맞춰 계속 이동하는 문제가 나왔다.
13기 문제 기준으로 3문제 중 2문제는 풀만 했고 마지막 문제는 풀 생각도 안 했다
나중에 알아보니 엄청 어려운 문제였다고 한다.
백준에 비슷한 문제가 있다. 물론 난이도는 훨씬 어려웠다고,,,, 한다.
https://www.acmicpc.net/problem/14500
14500번: 테트로미노
폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변
www.acmicpc.net
웹
13기 기준으로 서버에서 데이터를 가져와서 화면을 통해 그려주는 문제가 나왔다.
fetch api를 사용해 데이터를 가져오고, 가져온 데이터는 2차원 형식이었다.
그 데이터를 하면에 표 형식으로 잘 그려주는 문제가 나왔다.
SQL
여러 테이블을 조인해 데이터를 구하는 문제가 나왔다.
예를 들어 식당과 고객 정보 데이터가 있으면 10일부터 11일까지 식당을 이용한 고객의 정보로부터 이름, 나이, 날짜, 먹은 음식을 날짜 순으로 출력해야 한다.
물론 WHERE절 사용해서 조건에 맞추는 건 기본이다.
나는 날짜를 빼는 함수를 까먹어서 sql 문제를 풀지 못했다.
그리고 마리아디비에서 날짜를 빼는 함수가 DATEDIFF라는 걸 처음 알았다.
준비를 하는 방식
SQL
SQL은 프로그래머스 SQL 문제를 푸는 게 많이 도움이 된다.
https://programmers.co.kr/learn/challenges?tab=sql_practice_kit
코딩테스트 연습
기초부터 차근차근, 직접 코드를 작성해 보세요.
programmers.co.kr
이 문제들을 전부 풀 줄 안다면 앵간 풀 확률이 80% 정도로 높아진다.
웹
웹의 경우는 다음 사이트를 추천한다.
https://www.testdome.com/tests
Tests | TestDome
Front-End Web Technologies
www.testdome.com
해당 사이트에서 HTML/CSS and JavaScript with jQuery를 선택하고 문제를 풀어보면 좋다.
풀다가 답을 모르겠으면 구글링 하면 답이 나온다.
이런 사이트인데 소마의 웹 문제와 비슷하게 나온다.
테스트가 한 번밖에 안됐던 것 같은데 구글 시크릿 모드를 사용해서 여러 번 문제를 풀어볼 수 있다.
알고리즘
알고리즘은 뭐,,, 백준 아니면 프로그래머스다.
주로 구현 쪽 문제가 많이 나와서 구현을 준비하면 좋다.
만약 급하게 코딩 테스트를 준비한다면
백준 단계별로 풀어보기에서
스택, 큐, 브루트 포스, 백트래킹, 그리디, 분할 정복 풀어보면 좋다.
그리고 시간 되면 삼성 기출문제까지 풀면 좋다.
전략
만약 소마 코딩 테스트를 급하게 준비한다고 하면 웹과 sql 문제를 노려라.
이미 알고리즘 준비를 많이 했어도 웹과 sql 문제를 노려라.
알고리즘은 급하게 준비한다고 늘지 않는데, 웹과 sql 문제는 공부할 수 록 확률이 기하급수적으로 올라간다.
그리고 코드 퀄리티를 중요시해라. 문제를 풀었다면, 코드를 이쁜 코드로 만드는 게 좋다.
12기 기준으로는 떨어져서 잘 모르겠지만
13기 기준으로는 면접에서도 코딩 테스트 때 코드를 보며 왜 이런 코드를 작성했는지 물어봤다.
그리고 13기 연수생 분들께 여쭤봤을 때 채점만 돌리는 게 아니라 코드의 품질을 보는 듯 했다.
정리
요약하자면 코딩 테스트에서는 기본적으로 코딩을 할 수 있는지를 검사하는 것 같다.
2차 코딩 테스트까지 봤다면, 자소서까지 합쳐서 면접 인원을 고르는 것 같다.
코딩 테스트를 망쳤다고 너무 낙심하지 말고 자소서를 믿고 기다리자.
솔직히 나도 왜 붙었는지 모르겠다.
근데 유튜브를 찾아보니 코테에서 다 못 풀어도 붙는 사례가 있다고 한다.
https://www.youtube.com/watch?v=JSVlqI_3IRA&t=321s
그리고 연수생분들께 여쭤본 결과 다들 코테를 망쳤는데도 붙었다고 한다.
음,,, 워낙 대단한 사람들이 많아서,,, 사람마다 망치는 기준이 다르겠지만
보통 보면 두 문제 이상 잘 풀면 합격한 것 같다.
다들 화이팅 :)
'회고 또는 후기' 카테고리의 다른 글
소마 13기 합격 후기 (4): 면접은 까보기 전까지 모른다. (0) | 2022.06.24 |
---|---|
소마 13기 합격 후기 (2): 자소서 어떻게 적지? (0) | 2022.05.15 |
소마 13기 합격 후기 (1): 왜 소마인가? (0) | 2022.05.15 |
프론트엔드 개발자로 살아보기 (부들부들) (0) | 2022.05.03 |