6주차의 주제는 DFS와 BFS였다.
자신있기도 하고 재미있어하는 태그라 난이도 있는 문제 위주로 접근해보았다.
예전에 BFS 태그의 Platinum3을 풀었던 경험이 있어 Platinum 문제들을 몇 개 접해보았다. Gold 하위 문제들은 그냥 코드를 통째로 외우고 있어도 웬만하면 풀렸지만, Gold1부터는 정말 코드의 흐름을 나노 단위로 이해하고 있어야 알고리즘을 올바르게 설계할 수 있다고 느꼈다.
일반적으로 DFS/BFS 문제에서 중요하다고 생각하는 것은 탐색 중의 방문 처리와 종료 조건 설정이다. 지금까지도 그랬고, 이번 주 집중 공략을 통해서 더욱 확고해졌다.
사실 해당 알고리즘은 지정된 패턴대로의 이동을 반복하며 최단 경로 , 경로의 수 , 구역의 갯수 등을 구하는 것이 9할 이상임에도 불구하고, 순수 DFS/BFS의 난이도가 Silver부터 Platinum 중상위까지 있는 것은 사소한 조건 하나만 추가되어도 방문 처리하는 방식과 종료 조건이 달라지기 때문이다. 당연히 연습을 통한 경험 말고는 방법이 없기때문에 많이 풀어보길 권한다.
휴.. 솔직히 이렇게 하다보니 PS가 질리는 감이 있기는 하다만.. 막상 안 하면 손가락이 근질근질한걸 보면 정말 강력하고 좋은 습관을 지니고 있구나~ 라는 생각이 들어 좋다.
물론 나만 그런게 아니긴하다만, 자신있는 태그임에도 티어가 하나만 올라가면 풀이시간이 꽤 많이 늘어나는 걸 보면 결코 빼어난 두뇌를 가지고있지는 못 하다는 것을 체감한다.
이건 자책도 자신감 하락도 아닌 자주 느끼는 객관적인 하나의 명제일 뿐이다.
따라서 아쉽지도 않고 '훈련량으로 때우자!'라는 생각만 더 확고해진다.
아 물론 서울대생 카이스트생이 시작하고 보름만에 다이아 찍어버리는 건 턱에 쨉을 날려주고싶다 얄미워 죽겠어 정말
어찌됐든 알고리즘 숙련도가 한층 성장한 것같아 만족한다!!
다음주에는 꿈에 그리던 Platinum 달성을 이룰 것같다..😭