삼성 2022 인턴 코딩테스트(SW 역량테스트) 후기 및 면접, 합격

Andrew·2022년 5월 4일
3

2022년 5월 1일 일요일 삼성 2022 인턴 코딩테스트를 응시하기 위해 수원에 다녀왔다. 방학동안 삼성 기출을 공부해왔지만 인턴 서류 합을 기대하지 않고 있었기에 4월 하순 시험기간에 서류 합 결과를 확인했을 때 새삼 놀랐다. 시험이 끝나고 4~5일 정도의 시간 동안 백준 알고리즘 사이트에서 삼성 역량테스트 및 A형 기출을 준비하고 시험에 임했다.

삼성 역량 테스트 기출 문제 모음집
https://www.acmicpc.net/workbook/view/1152

삼성 A형 기출 문제 모음집
https://www.acmicpc.net/workbook/view/2771

+) 2023.04.05
'코드트리'라는 사이트에서 그동안의 삼성 코딩테스트 기출 문제를 복기해놓았다.
제목은 실제 문제와 다르지만 내용은 같은 것 같다. 필자는 2022년 상반기 1번 '꼬리잡기놀이' 문제를 풀었다. 백준과 티어 체계가 같은지는 모르겠으나 골드 1으로 측정되어 있다. 거의 모든 기출이 복기되어 있는 것 같으니 공부할 때 참고하면 좋을 것 같다. 인턴과 공채 모두 문제는 동일하다.
https://www.codetree.ai/training-field/frequent-problems/?page=3&pageSize=20&username=

전자문진을 두 번 했어야 했는데(약 3일 전에 한 번, 응시 직전 날 한 번) 직전 날에 기출을 풀어보다 깜빡 잊어서 저녁 8시에 인사팀 담당자 분께 전화를 받았다.

시험 문제가 이 글을 작성하는 날 기준(2022/05/04)으로 아직 백준에 올라와있지 않다. 직접적으로 유출할 수도 없고, 기억도 잘 나지 않아 대략 어떤 유형이었는지 소개하려고 한다.

3시간 2문제는 동일했고, 한 문제를 읽기 시작하면 그 문제를 푸는 데 소모한 시간이 2문제 각각 독립적으로 기록된다. 시간 역시 순위를 매기는 데 한 요소로 작용하는 것 같다. 애초에 1문제만 풀겠다는 마인드로 2문제 모두 확인하고 쉬운 문제를 선택하는 것도 전략일 수도 있지만, 문제를 여는 순간부터 시간이 흐르게 되므로 2번째 문제는 손도 안 대도 이미 2시간이 흘러있게 될 수도

시험장 세팅

시험장 세팅에 대해 말을 하자면 C/C++는 vscode express, Java는 Eclipse, Python은 PyCharm을 사용하도록 되어있다. 다른 건 사용할 수 없다. 구글링 불가능하다. 아예 인터넷이 안 켜진다.

C++ 사용자라면 상당히 당황할 수 있는 부분이 하나 있었는데 bits/stdc++.h 파일이 없었다!
#include <bits/stdc++.h>가 불가능하다. 따라서 하나씩 필요한 헤더 파일을 모두 include 해줘야 했다. 필자는 memset이 무슨 헤더 파일에 들어가있는지 까먹어서 결국 수기로 배열을 초기화했어야 했다. 혹시 삼성 코테를 보러 가는데 C++ 사용자라면 한 번씩 주로 사용되는 메서드나 타입(queue, vector, pair, memset, copy 등)의 헤더파일을 확인하고 가면 좋겠다.

13인치 노트북이 3면 투명 플라스틱 가림판으로 둘러쌓여 있었고, 키보드는 찜질방 피시방에 있는 3만원짜리 키보드와 마우스가 주어진다. 키보드는 빼버리고 노트북의 키보드를 사용해도 무방하다. 화장실은 고사실 당 한 명씩만 번갈아 가면서 갈 수 있다. 한 고사실에 약 20명 정도가 응시한다.

문제 후기

필자는 1번 문제부터 열어서 풀기 시작했다. 구현 문제였고 문제에서 요구하는 내용이 상당히 많았다. 개인적으로 맥을 사용하는데 시험장 세팅은 전부 윈도우에 문제를 읽는 페이지도 백준과 달라서 이미 체감 난이도가 상승한다(문제를 여는 순간 맥박이 빨라지더라..). 더군다나 출력 형식이 백준이랑 다르다. Google kick start처럼 테스트 케이스마다 #1 [정답] 형식으로 출력해야 한다. 출력 형식을 위한 기본적인 세팅은 되어있다. 물론 세팅을 모두 지워버리고 본인이 백지부터 코딩해서 같은 결과만 출력해도 정답으로 인정된다. 당황하지 않기위해 삼성 SW 아카데미 홈페이지에서 출력 형식을 한 번쯤은 연습해두길 권장한다. https://swexpertacademy.com/main/main.do

C++로 응시했고 결과부터 말하면 1번을 푸는데 2시간 50분이 걸렸다. 테스트 케이스가 10개 주어졌는데 일단 테스트 케이스에 대해서는 모두 답이 일치했다. 물론 이것이 맞았음을 보장하진 않는다.

구현에 요구되는 사항이 상당히 복잡했다. 문제 유형은 대략적으로 1초에 몇 가지 일들이 모두 진행되어야 하고, k초 동안 진행되었을 때 얻게 되는 점수를 계산하는 문제였다. 진행 방향으로 움직이기, 획득한 점수 계산 등이 필요했다. 세부적으로 원하는 구현이 많았기 때문에 녹록치 않았다. 추후에 문제가 백준에 올라오면 링크를 첨부하겠다. 어찌저찌 1번 문제를 구현하고 코드를 복붙했는데 출력이 전부 0으로 나오면서 이게 뭐지? 라는 생각이 들었다. 예상하건대 채점 서버에서 C++로 입출력 시 scanf/printf와 cin/cout을 동시에 사용하면 에러가 나는 것 같다(물론 확실치 않다). 급히 scanf/printf를 cin/cout으로 모두 대체하고 제출하니 테스트 케이스가 모두 로컬에서 돌린 것과 같아졌다. 그렇게 제출했을 때가 2시간 50분쯤 지난 상황이었다.

2번 문제는 읽어만 보자고 열었고, 대충 읽어보니 이것도 쉽지 않은 구현으로 보였다. 역시 도망쳐봤자 의미없다. 애초에 시간이 없어서 문제를 닫고 쉬었다. 3시간이 되자 칼같이 종료되었고 그렇게 첫 삼성 코딩테스트가 끝났다.

총평

오늘 풀어본 문제 1번의 난이도를 매기자면 골드2 ~ 플레5 정도라고 생각한다. 코테 응시 이틀 전에 풀어본 삼성 기출 문제 어항정리가 생각나는 난이도였다(어항정리는 플레5다). 나중에 백준에 공개가 되고 플레5로 매겨지지 않더라도 현장에서 익숙치 않은 환경과 세팅에서 푸는 것만으로 난이도는 두 단계 정도는 상승한다고 생각하는 게 맞는 것 같다. 더군다나 시험장인 수원까지 가면서 이미 녹초가 되었다. 삼성 코테는 구현력이 중요하기 때문에 미리미리 백준 사이트에서 많이 풀어보고 시험 보기를 권장한다. 한 문제 한 문제 푸는 데 시간이 오래 걸리기 때문!

코테 결과가 발표되면 다시 포스팅을 올리도록 하겠다.

+) 2022.05.27
감사하게도 코딩테스트에 합격했다. 면접 일정(05/31)이 다소 빠르지만 잘 마무리 해야겠다!

+) 2022.06.29
면접에 합격했다. 이번 여름에는 인턴을 할 수 있게 되었다!

profile
조금씩 나아지는 중입니다!

4개의 댓글

comment-user-thumbnail
2023년 3월 7일

안녕하세요. 혹시 인턴수료후 전환면접을 바로 보는걸까요?? 아니면 여름에 인턴을하고 이후 하반기에 인턴수료전형(?)으로 다시 지원해서 전환면접을 보는건가요??

1개의 답글
comment-user-thumbnail
2024년 3월 4일

저는 베트남에서 온 개발자인데, 한국어 회화가 문제 별로 없는데 수학 전문적은 용어는 이해가 어렵다. 보통 문제 풀 때 google translate이용한데, 인터넷 안 되니까 문제가 되네요.
여기서 외국인 경력 소프트웨어 개발 포지견에 지원하신 분 계시나요? 경험 좀 공유해주시면 좋겠습니다.
정보를 공유 해 주셔서 감사합니다. 다들 행복하고 성공하시기 바랍니다.

답글 달기