Samsung SDS 2022 동계 알고리즘 특강 회고
1. 모집
같이 공부하시는 영운님(@yeongun)의 추천으로 특강에 지원하게 되었다.
사실 SDS 프로 시험을 보고 삼성에 입사를 하기 위한 목적이 아닌, 순수하게 '대기업 알고리즘 특강이 얼마나 재밌고 퀄리티가 높을까?' 에 대한 호기심으로 지원하게 되었다.
2. 사전테스트 (코딩테스트)
총 6문제를 받는다. 다른 일반적인 코딩테스트와 달리 기간을 넉넉하게 주고, 지원자가 원하는 시간에 한 문제를 클릭해서 테스트에 응시하면, 해당 문제의 시간이 count되는 형식이었다. 응시자가 원하는 시간대에 한 문제씩 응시할 수 있다는 점에서 다른 코딩테스트와는 느낌이 달랐다.
문제의 제한시간은 없었지만, 또 그만큼 오래걸리면 안된다는 부담감이 있었기에 한 문제, 한 문제 집중해서 응시했다.
어떤 문제들이 출제됐는지 알고 있지만, 문제 유출의 우려가 되어 말을 못하겠다 ㅠㅠ 정말 다양한 알고리즘들이 나오고특히 탐색에 있어서서는 공부를 특히 더 많이해야 합격할 수 있을 것 같다.(알고리즘 특강이라 쉬울줄 알았는데, 코딩테스트 알고리즘부터 좀 어려웠던 건 안비밀, 다른 일반적인 기업 코테랑 별반 차이가 없을 듯)
3. 교육 입과 (Java)
C++이 먼저 2주 수업을 했고, 그 다음 Java 반 수업이 시작되었다. (2022.1.17 ~ 2022.1.28)
진행방식
9:00 ~ 18:00 까지의 Knox Meeting 프로그램을 활용한 비대면 수업 (12:00 ~ 13:00 점심시간)
책은 집으로 배송된다. 비대면이지만 미팅 프로그램도 정상적으로 잘 작동하고, 강사님도 이해하기 쉽게 설명해 주셨다.
설명과 함께, 백준 문제를 함께 푸는 시간도 가지는데 난이도가 생각보다 높았고, 질 좋은 문제로 모은 느낌이 들어서 알찬 문제를 풀 때마다 기분이 좋았다. 하지만,, 알찬만큼이나 내 뇌가 이 알참을 못견디고 정보입력을 거부했을 때부터는 따라가기가 버거웠다. 보통 골드3 ~ 플레5 정도 수준의 문제를 푸는 것 같다. (그 외 기본적인 자료구조 문제 ? 실버, 골드 사이로 추정되는 문제들은 풀긴 풀지만 빠르게 빠르게 넘어간다)
문제풀 때, 강사님께서 설명과 브리핑을 해주시고 푸는 시간(약 30분)을 주신다. 이후엔 강사님이 문제풀이를 상세히 알려주시는데, 수강자들의 질문을 하나도 빠짐없이 잘 답변해주셨다.
1주차 학습
- 알고리즘 기초 (BFS, DFS, 순열 등)
- 시간복잡도 (Binary Search)
- 자료구조 (Stack, Queue, Tree, Heap_강조, Indexed Tree_강조, TRIE_어렵)
- 수학적 (Partial sum, Eratos, Combination Euclidean algorithm)
2주차 학습
- Tree, MST (Kruskal, Prim, Topological-sort 등)
- 그래프, 탐색 (Bellman_Ford, Dijkstra, Floyd-warshall, ArticulationPoint_어렵(절단점), LCA_어렵)
- DP (Dynamic programming 1, 2)
- 지금까지 배운 내용 활용 및 심화된 문제 풀이
4. 끝으로
이 강의를 들었으면 좋겠는 사람
이 강의는 백준 solved.ac 랭크 기준 [골드 ~ 애매한 플래] 정도의 level을 가진 이용자가 듣는다면 유익할 수 있는 강의이다. 만약 실버 문제가 버겁다면 수업을 따라가기가 말도안될 정도로 벅찰 것이고 (사실 이건 괜찮다, 수업 끝나고 새벽까지 풀로 공부하자 폭풍 성장할 수 있는 기회다) 그게 아니고 만약 플레정도의 레벨이라면 이미 풀었던 문제가 많고 아는 내용이 많을 테니 들을 필요가 없다.
혹은 강의와 관계없이 삼성 Pro Test의 자격을 부여받아서 시험을 보고 싶은 분들은 꼭 지원하시길 바란다. 아직 필자는 시험을 응시하지 않았고 삼성 SDS 취업에 큰 욕심이 없지만, 삼성 Pro Test를 응시하면 SDS 공채에 지원할 때 너무나도 많은 혜택을 가져가는 것으로 안다. 바로 최종면접으로 직행할지도 ,,?
아쉬운점
필자는 10일의 수업중 7일차까지는 수업에 잘 따라 간 것 같다. 나름 알고리즘과 자료구조에 자신이 있었음에도 불구하고 처음 만나는 지식들(Indexed Tree, 수학적인 부분, TRIE, 절단점, LCA 등)을 한거번에 마주하니, 이것들을 온전히 흡수하기가 너무 어렵고 나중엔 지쳤던 것 같다.
아쉬운점은 너무 단기간에 너무 많은 내용이다. 물론 내 뇌의 효용성이 떨어져서 다른 참가자들에 비해 따라가기가 버거웠을 지 모른다. 하지만, 9시부터 오후 6시까지 점심시간 1시간을 제외하고, 알고리즘을 풀고 이해하는데 풀가동 시키는 것이 생각보다 힘들었다. 특히 필자는 문제 하나를 풀어서 그것을 이해하려면, [문제 정의 -> 고민 -> 해결 - >이해]의 과정을 거치는데 고민하는 시간에서 어느정도 절대적인 시간이 필요하다. 하지만, 교육에선 강의를 듣고 고민할 시간이 조금 적은 상태에서 풀이를 보고 넘어가서 또 다른 정보를 접해버리기 때문에, 뇌에 기억되는 정보가 기억속에 오래 남지 않았다.
결론
좋은 강사님께 좋은 강의와 접하지 못했던 알고리즘에 대해 학습할 수 있어서 너무도 좋은 기회였다고 생각한다. 마지막에 2일정도에 흐트러진 내 자신을 반성하며, 바로잡을 수 있는 부분을 복기하여 고쳐야겠다. 학습한 내용이 비록 완전히 흡수하진 않았지만 이후, 꾸준히 하나씩 하나씩 되짚어봐서 복습하여 자기것으로 만들 수 있도록 노력해야겠다.