| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 브루트포스
- 42서울
- 최소 스패닝 트리
- festify
- 19951
- 삼성전자 dx 알고리즘 특강
- pushswap
- 백준
- 16974
- 분할정복
- 삼성b형
- 이미지삭제
- 16719
- 레벨 햄버거
- 자바
- born2beroot
- 알고리즘특강
- 삼성전자dx
- 오늘의 문제
- 18869
- 42서울 #개발 #대외활동
- 9465
- 3967
- 도시 분할 계획
- 이미지저장
- gdg스터디
- 다이나믹 프로그래밍
- 최소지식원칙
- 13905
- 파사드패턴
- Today
- Total
그거 기능이에요
2025 삼성전자 DX 동계 알고리즘 특강 본문
이번 겨울 방학에 삼성전자 DX 알고리즘 특강을 들었다. 이게 뭐냐면 삼성전자에서 컴퓨터공학 전공생들을 대상으로 4주간 알고리즘 교육을 시켜주고, 숙제와 강의를 열심히 들으면 수료증도 발급해준다.
가장 중요한 건 알고리즘 특강 수강생을 대상으로 삼성전자 사내 알고리즘 시험(B형)을 칠 기회를 2번 준다. 이걸 통과하면 뭐 큰 건 없고 우선 기분이 좋다. 예전에는 서류 우대에 코테 면제의 혜택이 있었다는데 내가 취업할 때까지 있을지는 잘 모르겠다. 많이 배우고 열심히 한 활동이라서 오랜만에 블로그에 글을 쓰고 싶었다.
이 프로그램이 있다는 걸 9월에 알았고, 12월부터는 모집 페이지를 북마크에 넣어두고 매일매일 확인했다. 다행히 늦지않게 발견해서 잘 신청할 수 있었고, 선발 문제풀이까지 또 기다렸다.

선발 문제가 나온 날 전날 술을 너무 많이 마셔서 숙취때문에 힘들었지만, 개포동가서 열심히 문제를 풀었다. 누가봐도 BFS처럼 생긴 문제였지만 그렇게 풀면 90초로 시간초과가 나왔고, 정말 최소한의 연산만 할 수 있도록 최적화해서 1초로 통과했다.
그리고 그 다음날 다른 문제도 열심히 구현해서 통과할 수 있었고, 남은 시간동안 자려고 누웠다가도 최적화 방법이 생각나면 일어나서 코드를 수정하면서 온몸비틀기 최적화를 완성했다.

그러고 기다리다가 합격 메일을 받았다. 더이상 최적화가 가능하지 않다고 생각해서 붙겠다 싶었는데 그래도 합격 메일을 보니까 기분이 좋았다. ㅎ

이후 4주동안 교육이 진행됐는데 생각보다 문제가 많이 어려워서 놀랐다. 문제를 풀면서 첫인상으로 생각했던 풀이대로 풀면 꼭 시간초과가 나고, 그 풀이를 버리고 최적화를 진행해야 맞는 풀이가 나오게 출제했다는 걸 느꼈다. 그래서 초반에는 삽질을 정말 많이 했다. 하루종일 알고리즘만 풀고 가는 날도 있었고, 결국 못 풀어서 집가서 밤늦게까지 풀고 자는 날도 있었다.
4주동안 100시간은 넘게 알고리즘을 푼 것 같았다. 풀면 재밌지만, 풀지 못했을 때의 스트레스가 더 커서 어떻게든 풀려고 노력했던 것 같다. 중간에 코드배틀 형식으로 한 문제를 4시간 동안 풀이를 진행했는데 5분 남기고 제출해서 200ms정도 나와서 잘 풀었다 싶었지만, 5등안에 들지는 못했다. 아마 10등안에는 들었지 않았을까 싶다.
알고리즘이 왜 중요한지, AI한테 너무 겁먹지 않아도 되는 이유가 뭔지 등등 강의에서도 여러가지로 배울 내용이 많았다. 트라이, 비트마스킹, 세그트리 등 여러 새로운 알고리즘도 배워서 문제를 통해 물고 씹고 뜯고 맛보고 밟고 찢고 부수고 다했다.
기본으로 내어주는 문제와 추가문제는 다 풀고 프로 시험 대비 문제는 조금 덜 풀고 B형 시험을 봤다. 첫 시험은 접근도 맞고 풀이도 맞았는데 자료형의 범위를 조금 잘못 생각해서 오버플로우가 발생했다. 나중에 생각하니 아주 쉽게 해결할 수 있는 방법이 있었는데 당시에는 '내가 또 바보같이 이상한 풀이로 접근했구나ㅠㅠ'하는 생각에 코드를 다시 짰다... 그래서 시간이 부족했고, 결국 25개의 테스트케이스 중 1개만 맞추고 나머지는 틀린 코드를 제출하고 시간이 다 되어서 나왔다.
두 번째 시험은 긴장도 덜 하고 아주 잘 아는 알고리즘이 나와서 기쁜마음으로 문제를 풀었다. 30분정도 구현을 고민하고, 30분 구현하고 40분 디버깅하니까 100점 1.3초로 통과되는 코드가 나왔고 1시간을 더 최적화하니까 0.8초까지 줄일 수 있었다. 사실 초기화에서 register 키워드를 넣으면 0.6초까지도 가능했지만, 이걸 써도 되나?하는 생각이 들었다. 혹시 뭘 더 include 해야하는 건 아닌가? 테스트환경에서 안 돌아가면 어쩌지? 싶었고, 굳이 저 코드까지 넣어야만 통과되는 코드면 애초에 틀린코드겠지 하는 마음에 과감하게 0.2초를 포기하고 제출했다.
나와서 생각해보니 나머지 25개의 히든테스트케이스가 모두 최악의 케이스라고 하더라도 2.4초 정도로 통과가 가능할 것 같았고 제발 숨겨진 오류만 없길 바라면서 발표를 기다렸다.

결과는 합격. 불합격 후기를 쓰게될까봐 걱정 많았는데 합격 후기라 다행이다. 이 교육은 알고리즘 완전 초보자를 위한 특강은 아니고, 기초적인 알고리즘은 조금 알고 있는 사람이 들으면 좋을 것 같다. 백준 플레 이하라면 특강 과정에 쏟을 충분한 시간적 여유가 있어야 할 것 같고, 시간을 쏟은 만큼 많이 얻어가는 교육이라고 생각한다.
아마 나도 다시 방학에 열심히 살고 싶어지면 한번 더 수강할 것 같다
'삼성전자 DX 알고리즘 특강' 카테고리의 다른 글
| 삼성전자 DX 알고리즘 특강 선발 (0) | 2025.02.03 |
|---|