서론

7월 22일부터 4주 동안 진행한 삼성전자 알고리즘 특강이 끝이 났다. 처음으로 참여한 대외 활동이었고, 완전 성실하게 참여했다고 말하기는 어렵지만 시간을 짬짬이 내서 특강에 임했던 것 같다. 이번 글은 4주동안 진행한 내용에 대한 회고이다.

본론

계기

삼성전자 DX 알고리즘 특강을 처음 알게 된 건, 군대 동기로부터의 권유였다. 23년도 겨울방학 때도, 삼성전자에서 동일한 특강을 진행했다.

본인은 당시에 알고리즘에 대한 감각이 제로에 가까웠고, 백준 같은 사이트에서 문제를 풀어본 경험도 적었다. 그렇기 때문에 뭐라도 배울 수 있다면 시도했던 것 같고, 실제로 지원을 했다.

삼성전자 알고리즘 특강에 신청하면, 몇 주 뒤에 테스트 문제를 풀라는 메일이 온다. 알고리즘 지식이 제로에 가까웠던 나는 문제에 손을 거의 못 댔다. 아니, 그냥 몰랐고 못 풀었다.

하지만 여기서 동기부여를 얻었다. 알고리즘 공부를 해야겠다는 생각이 들었고, 열심히 준비해서 다음 기회에 다시 도전하자는 결심을 했다. 이후 3학년 1학기 동안 대학에서는 알고리즘 강의, 개인 시간에는 백준을 풀면서 알고리즘 문제 풀이를 진행했다.

그리고 24년도 하계 알고리즘 특강 공지가 나왔다는 소식에 지원을 했다.

테스트

24년도 하계도 이전과 동일하게 테스트 문제를 풀어야 했다. 문제에 대한 설명과 풀이는 유출하면 안 되기 때문에 여기에 작성할 수는 없다.

하나 확실했던 건, 이전과는 달리 문제에 접근하고 코드를 작성하는 나를 볼 수 있었다. 그 순간 조금은 성장했음을 느꼈다.

모든 문제를 풀어서 제출을 했고, 마지막 날에는 최적화 및 리펙토링을 진행했다. 최적화의 경험이 적어서 그런지, 어디서부터 해야할지 감이 잘 안잡혔다. 그래서 리펙토링을 더 중점을 두고 진행했다. 이 과정에서 최적화에 대한 경험을 가져보자라는 생각이 들었다.

테스트 문제 풀이 마감이 끝나면 4~5일 뒤에 합격 메일이 날라오고, 점심 쯤 합격 메일이 왔다.

특강 진행

알고리즘 특강은 2주는 기초 알고리즘, 2주는 실전 문제풀이로 진행을 한다.

첫 2주 동안은 기초 알고리즘에 대한 학습을 진행했다. DFS/BFS, 해시와 같은 백준 혹은 대학 강의에서 접할 수 있는 알고리즘부터 트라이, 세그먼트 트리와 같은 생소한(개인적인 생각) 알고리즘을 학습한다.

트라이와 세그먼트 트리와 같은 생소한 알고리즘을 학습해보는 것이 이 특강에서 얻어갈 수 있는 장점이라고 생각한다. 또한, 학습한 내용을 바탕으로 하루에 2문제 정도 연습 문제를 풀어야 한다. 학습한 내용을 내가 잘 알고 있는지 확인하는 시간을 가질 수 있는 것도 하나의 장점이라고 볼 수 있을 것 같다.

마지막 2주는 실전 문제풀이를 진행한다. 여기서 실전 문제풀이는 삼성 B형 시험을 위한 문제풀이라고 생각하면 된다. 여기서부터 갑자기 난이도가 뛴다.. 엄청 어려운 알고리즘을 요구하는 것이 아닌, 설계를 빡세게 하고 구현을 하는 연습이 주 목표라고 생각했다.

이 2주를 어떻게 보내느냐에 따라 B형의 당락이 조금은 영향을 준다고 생각이 들었다. 한 문제를 풀기 위해 설계를 하고, 구현하고 최적화를 하는 연습을 하면서 B형에 익숙해질 수 있기 때문이다. 본인은 머리가 펑하고 터졌다. 급증한 난이도에 의해

Pro 시험

수료 조건 중 Pro 시험, 즉 B형 시험을 1회 응시해야 한다. 합불은 상관이 없다.

본인은 알고리즘 특강이 끝나고 보는 게 낫다고 판단되어, 8월 24일에 신청을 했고 시험을 보러 갔다. 사실 그 전날 문제 풀이 수료 조건이 발표됐고, 본인은 문제 풀이 수료 조건을 만족시키지 못했음을 알았다. Pro 시험을 보러 가도 수료를 못 하는 건 똑같지만, 한 번 현장에 가서 시험을 보고 싶다는 생각이 들었기 때문에 시험에 응시했다.

시험에 대한 내용도 작성하면 안되기 때문에 작성할 수는 없다. 다만, 합불여부에 대해 작성을 하자면 불합격이다. 물론, 아직 메일이 오지 않았지만 테스트 케이스를 아무것도 통과하지 못 했다.

마무리

이렇게 4주 간의 여정이 끝이 났다. 사실 후반부에는 동아리 회고 프로젝트에 힘을 더 쓰고 싶다는 생각이 들어서, 알고리즘에 소홀히 했다. 두 마리의 토끼를 잡으려다가 한 마리만 잡은 느낌이다.

특강을 통해 얻어갈 수 있는 건 많다고 생각한다. 시간복잡도를 생각하면서 설계를 하는 방법, 최적화 및 디버깅 능력 그리고 문제 풀이 능력 및 사고력 등 많은 것을 얻어 갈 수 있다. 물론, 본인의 노력에 따라 달라진다.

이번에는 수료를 못 했지만, 24년도 동계에 다시 한 번 도전하고 싶다. 그러기 위해서는 3학년 2학기에 열심히 준비해야 한다. 잘 준비해보자.