WEEK 04(3/23 ~ 3/30)는 진작 끝난 4월 4일, 늦게나마 WEEK 04 회고를 적어본다. 알고리즘 마지막 주의 주제는 마지막 답게 DP(Dynamic Programming), 그리디 알고리즘이었다. 내주신 문제들도 지난 주들에 비해 적었고, 한 문제 한 문제 난이도가 높아보였다. 한편으로는 이런 문제들에 도전할 수 있는 지점까지 왔다는 생각에 알고리즘 실력이 성장하고 있다고 느꼈다. 특히 3주차 시험때는 그래프 문제들을(물론 문제 분류를 알고 풀지만) 수월하게 풀어낼 수 있었기에 자신감이 늘어가고 있었다. 그렇게 4주차를 맞이하며 팀원이 된 조원들은 (내 기준) 고수분들이었고 배울 점이 많은 분들이었다. 자신들만의 루틴이 있고 그 루틴에 맞게 공부하는 모습을 보고 나도 공부 방식 말고도 내가 좋은 컨디션을 유지할 수 있는 루틴을 찾아봐야겠다는 생각을 했다. 그 외에도 알고리즘을 같이 공부하면서 DFS + DP 문제를 어려워했는데, 그 중에서도 정수라고 볼 수 있는 외판원 순회 문제를 누나에게 설명들었을 때 정말 너무 이해가 잘돼서 소름이 끼쳤다.. 그 후로 앞으로 개발을 공부하면서 ‘남에게 설명할 수 있는 상태’ 가 되도록 이해하고 싶고, 설명을 잘 하는 사람이 되고싶어졌다. 이를 위해서는 설명하고자 하는 대상에 대해 더 깊은 이해를 꾀해야 할 것이기에 더 집중해서 공부할 수 있었다. 그렇게 목요일 시험이 다가왔고, 시험을 보면서 1번을 빠르게 풀고 나서, 2번 문제를 보았을 때 습관처럼 그래프 문제를 보자마자 생각없이 코드를 써내려갔다. 1번도 2번도 누나가 설명해준 DFS에 DP를 활용하는 전형적인 문제였고, 그 로직대로면 정말 쉽게 풀릴 문제였다. 하지만 그래프 문제만 보면 항상 BFS로 접근하고, 한번 시도한 접근 방식을 고수하는 경향이 있다. 이로 인해 로직의 수정이 아닌 구현에 집중했고, 결국 시간초과가 발생하여 1번밖에 풀지 못했다. 너무 분했지만 한편으로는 이번주의 Key point를 제대로 짚지 못했다는 생각이 들었다. 그래프 탐색이든, 어떤 문제든 memoization / tabulation을 활용해서 반복 계산할 문제들을 저장하는 것이 이번주의 핵심인데 이 부분을 제대로 훈련하지 못한것 같아 아쉬웠다. 1) 알고리즘 문제를 풀 때 한번 접근한 풀이를 고수하는 습관, 2) 핵심 로직을 짚지 않고 바로 코드 구현을 시작하는 습관 이 내가 고쳐야할 부분인듯 하다. 특히 2번을 확실히 해야 하겠다. 이를 위해서는 알고리즘/자료구조 활용에 있어서 Key Point를 확실히 숙지하고 응용하는 연습을 해야 한다.. 이렇게 알고리즘 주간은 지나갔지만 내 알고리즘 실력은 아직 너무 부족하다. 시간이 난다면 꾸준히 연습을 해야겠다. 어차피 정글은 오늘만 살아야 되니까 시간이 날 지 모르겠다. 지난 일요일에는 카이스트 본원에 벚꽃 구경 + 태국 음식점에 가서 진짜 엄청난 만찬을 즐겼다.. 거기 이름이 뭐더라.. ㅠ 또 갈거다 진짜 맛있다.. WEEK 05부터는 본격적으로 C를 활용한 자료구조 구현과 OS 프로젝트들이 시작된다.. 또 다른 몰입의 재미를 경험하러 뛰어들게 되어 기대도 되고 무섭기도 하다. 좋은 동료들과 환경이 있으니 또 이번주를 살아남아 보아야겠다 😃
열심히 하는 모습이 멋져요 청년