삼성 SDS 2023 동계 알고리즘 특강 및 삼성 SDS Pro SW 검정 합격 후기

Andrew·2023년 1월 20일
3

2023년 1월 9일(월)부터 1월 19일(목)까지 수업 및 문제풀이를 하고 1/20(금)에 삼성 SDS Pro SW 검정테스트에 응시하였다.

본인 역시 삼성 SDS 알고리즘 특강이 어떻게 진행되는지 궁금했던 기억이 있어서 수강에 관심이 있는 분들을 위해 후기를 작성해보려고 한다. 외부에 이야기 할 수 있는 부분까지만 후기에 작성하는 점을 고려해서 읽어주시면 감사할 것 같다.

선발 과정

12월 초쯤 구글 폼으로 지원을 한다. 학력, 전공, 간단한 한 줄 자기소개 등을 작성하고 증빙 서류를 첨부하여 지원한다. 이후에 입과테스트에 선발되면 이메일로 앨리스 플랫폼을 사용하여 5문제를 일주일 간 푸는 형식에 테스트에 임하게 된다. 보통 시험기간이랑 겹쳐서 잘 안 하게 되는데 이번에는 시간을 짬내서 응시했고 운좋게 5문제 모두 맞췄다. 바로바로 채점이 되기 때문에 점수를 알 수 있다. 선발 되기 위해서 5문제를 다 맞춰야 하는 건 아닌 것 같았다. 문제는 1,2번은 난이도가 평이했고 3,4,5번은 난이도가 꽤 있었다. 3,4,5번은 백준 플랫폼 기준 골드 2~3 정도는 되는 것 같았다.

알고리즘 특강을 수료하고 SDS Pro SW 검정에 합격하면 채용 과정에서 SW 역량테스트와 직무 면접이 면제되고 임원 면접 한 번으로 채용이 되는 혜택이 주어진다.

수업 후기

진행 방식

1주차와 2주차 각각 다른 주강사 및 보조강사님께서 맡아서 강의를 진행해주셨다. 1주차에는 기본적인 자료구조, 정수론, 조합론 등에 관한 문제 풀이가 진행되었고 2주차에는 그래프와 DP에 관한 문제 풀이가 진행되었다. 문제 플랫폼은 백준(BOJ) 사이트의 그룹 기능을 사용하여 진행되었다. 아쉽게도 어떤 문제가 있었는지는 외부에 말할 수 없기 때문에 위에 언급된 주제들에 관한 문제를 알고리즘 분류 탭에서 찾아서 풀어보면 좋을 것 같다.

삼성 SDS 내에서 알고리즘 특강 수강생에게 제공하는 자체 제작 교재도 배부되었다. 한 150쪽 정도 되는 교재로 퀄리티가 좋아서 공부할 때 좋을 것 같다. 삼성 이어폰과 노트 및 펜도 받았다(SDS 펜이 생각보다 사용할 때 필기감이 좋아서 놀랐다. 그래서 Pro SW 검정을 볼 때도 사용했다).

수업 방식

오프라인 및 온라인 동시에 진행되었으며, 본인이 어떤 방식으로 수강할 것인지 선택할 수 있었다. 중간에 방식을 변경하는 것은 불가피한 사정이 아닌 한 어렵다. 본인은 오프라인으로 선택해서 수강하였다. 삼성 SDS 사옥은 2호선 잠실역에서 도보 3분 거리에 위치하고 있다.

하루에 적으면 7~8문제, 많으면 17~18문제 정도 문제 풀이가 진행되었다. 문제가 많지 않은 날에는 문제 하나 하나가 난이도가 있는 편이었고 문제가 많은 날에는 초반부 문제는 평이한 수준이었다. 문제마다 주요한 개념에 대해서 대략적으로 설명이 들어간 후에 개별적으로 20-30분 정도 풀어보는 시간을 가지고 강사님이 문제를 풀어주시면서 설명을 덧붙였다. 그렇다고 수업에 집중하고 있어야 하는 것은 아니다. 전혀 다른 문제를 풀어도 되는 편한 분위기였다.

예전에 풀었던 문제도 다시 풀어보고 새로운 문제도 많이 풀어보았다. 2주 동안 모두 합쳐서 약 70문제 정도 푼 것 같다. 새로운 문제만 세면 40문제 넘게 풀었다. 문제별 난이도의 경우 실버 1-2에서 플레티넘 3-4까지 다양했다. 다이아 4 문제도 하나 있었지만 본인은 풀지 않았다.

2주 동안 중식 및 사내 폴 바셋 카페에서 아무 음료 한 잔이 제공되었다. 이동 동선이 그리 길지 않아서 점심을 금방 해치우고 커피를 쓱 챙겨서 다시 문제 풀이에 집중할 수 있는 여건이 되게 좋았던 것 같다(그리고 폴 바셋 커피가 꽤 맛있었다). 꼭 커피만 되는 건 아니고 폴 바셋에서 주문 가능한 음료 모두 가능하다. 다만 SDS와 계약이 되어있기 때문에 개인 카드로 결제는 불가능하다. 추가로 커피가 더 마시고 싶다면 회사 근처 카페에서 한 잔씩 사서 마셔야 한다.

1주차에 하루는 인사팀 분들과 나가서 점심 식사를 함께 하는 시간도 있었다. 굉장히 맛있는 일식 집에 방문했었는데, 상당히 초밥이 맛있었다. SDS 회사 생활이라던지 Pro SW 검정 팁 같은 것들에 대해 들어볼 수 있는 좋은 자리였다.

삼성 SDS Pro SW 검정 후기

삼성전자 B형 역량테스트와는 다른 시험이다. 간단하게 정리를 해보자면

* 부정확할 수 있습니다.

난이도삼성 SDS SW 검정삼성전자 SW 역량테스트응시 가능 언어특이사항
최상ExpertC형C/C++STL 사용 불가
ProfessionalB형C/C++, JavaProfessional STL 사용 가능, B형 사용 불가
AdvancedA형C/C++, Java, PythonSTL 사용 가능

약간 요런 느낌이다. 아마 Expert와 C형은 삼성 계열사가 모두 동일한 한 문제를 푸는 것으로 알고 있다. 삼성 SDS Professional과 삼성전자 B형은 비슷한 듯 다르다. 일단 SDS Pro 시험은 STL(라이브러리) 사용이 가능하다. 삼성전자의 B형은 STL 사용이 불가능하다. 어? 그러면 삼성전자 B형이 더 어려운 거 아닌가 하는 생각이 들 것 같다. 그런데 꼭 그렇지도 않다. 둘이 초점을 두는 부분이 다르다. SDS Pro 시험은 코딩테스트처럼 특정 자료구조나 알고리즘을 알고 있는지 물어보는(우리가 익숙한) 류의 시험이다. 삼성전자 B형의 경우 자료구조나 알고리즘을 구현하면서 최적화하여 제한시간 내로 들어와야 하고 소요 시간에 따라 상대 평가로 합격자를 결정한다. 삼성전자도 그렇고 SDS도 Pro와 B형은 취득을 적극 권장하고 있고 많은 임직원 분들이 응시하고 있다.

본인은 삼성전자 인턴을 했을 때, 인턴 선발 과정에서 삼성전자 코딩테스트를 응시한 경험이 있다. 그 문제가 삼성전자 A형에 해당한다.

https://www.acmicpc.net/workbook/view/1152
https://www.acmicpc.net/workbook/view/2771

백준에 거의 비슷하게 복기되어 올라와 있으니 삼성전자 코딩테스트를 준비하고 있다면 꼭 풀어보길 권장한다. 삼성전자 인턴 코딩테스트 후기 역시 velog 다른 글에 적어 놓았으니 관심 있다면 한 번 읽어보면 좋을 것 같다.

[삼성전자 2022년 인턴 코딩테스트 후기]
https://velog.io/@statco19/%EC%82%BC%EC%84%B1-2022-%EC%9D%B8%ED%84%B4-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%9B%84%EA%B8%B0

빈출 유형

여하튼 삼성 SDS Pro SW 검정(줄여서 소검이라고 부른다)에는 인덱스 트리(비재귀 세그먼트 트리), 그래프가 빈출이고 가끔씩 DP와 LCA(최소 공통 조상)가 출제된다고 한다. 대놓고 이 알고리즘을 써라는 형식으로는 출제되지 않는다. 문제에서 주저리 주저리 설명을 해놓으면 "이 알고리즘 응용해서 풀 수 있어?" 느낌으로 출제가 된다. 따라서 문제를 읽고 어떤 알고리즘이나 자료구조를 사용하기 바라는지 알아내는 게 첫 번째 포인트고, 해당 알고리즘이나 자료구조를 문제에 맞게 변형해서 구현하는 게 두 번째 포인트다.

시험장 환경

구글링을 할 수 없다. 응시 페이지를 제외하고는 인터넷 접속이 되지 않는다. 따라서 구현에 필요한 부분(정렬 기준 수정 등)은 모두 외워서 시험을 응시해야 한다. 개인 필기구는 지참이고 연습장이 2장 제공되고 필요 시 추가로 요구할 수 있다. 개인 노트를 지참하는 것은 허용되지 않는다.
Java는 Eclipse 한 가지로만 응시할 수 있고, C/C++ 는 2가지 코딩 툴 중 하나를 선택하여 응시할 수 있다. Visual Studio Express(Visual Studio Code와 조금 다르다) 혹은 Dev-C++ 를 선택할 수 있다. 주로 Visual Studio Express 로 많이 연습하고 응시를 하지만 본인은 강력히 Dev-C++ 를 추천한다.

그 이유는 Dev-C++ 는 GCC 컴파일러가 내장되어 있어 <bits/stdc++.h> 헤더 파일이 존재하는 반면, Visual Studio Express는 윈도우 C++ 컴파일러라 해당 헤더 파일이 없다. 따라서 모든 헤더 파일을 정성스럽게 하나씩 include 해줘야 한다.

#include <vector>
#include <algorithm>
...

하지만 Dev-C++ 를 사용한다면

#include <bits/stdc++.h>
한 줄이면 모든 게 include 되기 때문에 사용하고자 하는 자료구조나 메서드가 어떤 헤더 파일에 있는지 까먹어서 사용을 못하게 되는 참사를 방지할 수 있다. 더군다나 채점 서버의 컴파일러는 GCC 4.8.X (g++ C11) 이기 때문에 문제없이 돌아간다.

삼성전자 인턴 코딩테스트를 볼 때는 Dev-C++ 로 응시가 불가능해서 일일이 하나씩 헤더 파일을 include 해줘야 했었는데 memset이 어떤 헤더 파일에 들어가는지 몰라서 수기로 배열을 초기화하는 해프닝이 있었다(memset은 cstring 헤더 파일에 존재한다).

SDS 소검도 그렇고 삼성전자 역량테스트도 한 번에 몇 십개의 입력 케이스를 돌리기 때문에 배열 및 변수 초기화가 필수적이라는 점도 알아두면 좋다.

하지만 좋은 점이 있으면 나쁜 점도 있다. Dev-C++는 Syntax hint가 제공되지 않는다. 따라서 vector<int> v 로 선언된 벡터에 push_back을 한다고 하면, v.pu만 쳐도 Visual Studio Express에서는 자동 완성이 되지만 Dev-C++에는 그런 게 없다. 하지만 코드를 많이 짜다보면 그런 걸 기억 못 할리가 없기 때문에 사실상 필요가 없어진다. 따라서 본인은 Dev-C++를 강력 추천한다.

4시간 동안 1문제를 푸는 형식이고 2시간 이후부터 퇴장이 가능하다. 아무래도 1문제이다 보니까 본인이 아는 문제가 나오면 풀고 그렇지 않으면 아쉽지만 풀기 어렵다. 특히 구현이 까다로운 인덱스 트리(세그먼트 트리)나 LCA의 경우 구현을 하냐 못 하냐로 결정되는 경우도 많다고 한다.

시험 결과

위에서 인덱스 트리, 그래프가 최빈출이라고 이야기하였지만 본인은 DP 문제가 출제되었다. 3차원 DP 문제였고, 백준에 비슷한 문제를 푼 기억이 있어서 찾아보았지만 아직 찾지 못했다. 추후에 찾게 되면 첨부하겠다. 2주차 4일 중에 3일을 그래프를 배우는 데 시간을 쓰고 마지막 하루만 DP 수업을 들었지만 아이러니하게 DP에서 문제가 출제되었다. 난이도는 골드 3-4 정도 되는 문제였다. 오히려 인덱스 트리나 그래프보다 난이도가 낮았던 것 같았지만 예상치 못한 부분이었기 때문에 조금 당황했다. 그래도 다행히 1시간 30분 정도에 문제 풀이를 완료했고 2시간이 되었을 때 퇴실하였다. 잠실까지 온 김에 석촌호수 산책길을 둘러보는 걸로 알고리즘 특강을 마무리했다. 시험 시간이 종료되고 정확히 2시간 후에 합격했다는 문자를 받았다. 1/28(토)에 또 한 차례의 소검이 예정되어 있었는데 이번에 합격해서 불참하게 될 것 같다.

23.02.02 수정)
https://www.acmicpc.net/problem/15645
https://www.acmicpc.net/problem/2096

백준 15646번 내려가기와 유사하다. 2096번은 15645번과 문제 내용은 동일하나 메모리 최적화를 해줘야 한다. 다만 출제된 문제에서는 메모리 최적화는 필요없었고 1번에 한 해서 좌우 대각선 중 하나로 슈퍼 점프를 뛸 수 있는 조건이 추가되어 있었다. 시간제한이 빡빡해서 매번 대각선을 탐색하면 안되고 대각선에 있는 값들 중 최대값을 따로 저장해둬야 했다.

끝으로 SDS 알고리즘 특강과 SW 검정에 관심이 있는 독자 분들에게 도움이 되었으면 좋겠다는 말과 함께 글을 마무리하려고 한다.

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

10개의 댓글

comment-user-thumbnail
2023년 2월 6일

안녕하세요, 유사 문제로 남겨주신 것을 보니 PRO 시험에서 Andrew 님과 동일한 문제를 푼 것 같은데 여쭈어보고 싶은 점이 있어 댓글 남깁니다.

비밀댓글이 안되기에 최대한 추상적으로 이야기하자면, 점프하는 것을 어떻게 처리하였는지 여쭈어볼 수 있을까요..? 아무리 생각해보아도 해당 로직을 어떻게 구현할지 감이 오지 않습니다...
혹시나 다소 디테일한 설명이 필요하다면 domo7304@naver.com 으로 설명해주실 수 있다면 정말 정말 감사하겠습니다...

1개의 답글
comment-user-thumbnail
알 수 없음
2023년 2월 9일
수정삭제

삭제된 댓글입니다.

1개의 답글
comment-user-thumbnail
2023년 6월 22일

제가 현재 골3~4 구현,dp에서 벽느끼고있는데,
요 방학특강 들으면 도움 많이 될까요?
방학에 다른거 포기하고 들어야해서..고민이네요 ㅜㅜ

1개의 답글
comment-user-thumbnail
2023년 8월 20일

참고되었습니다. 감사합니다. ^^

답글 달기
comment-user-thumbnail
2023년 9월 19일

안녕하세요! 혹시 입과테스트 응시 언어에 제한이 있었을까요? 내년 상반기 알고리즘 특강을 목표로 하고 있어 여쭈어봅니다.

1개의 답글