[알고리즘] 백준 2178번
문제
https://www.acmicpc.net/problem/2178
풀이
알고리즘 공부를 하면서 자료구조도 간간히 복습하고 있습니다. 그리고 최근에 복습한 것이 바로 BFS와 DFS 알고리즘입니다. 단순히 자료구조를 공부하기 위해 구현을 하는 것은 그렇게 어렵지 않았고 실제 알고리즘에서 어떻게 활용될지가 궁금해 BFS 알고리즘 하나를 시도해봤습니다. 하지만 기본 BFS 알고리즘 조차 문제로써 나오니 쉽게 떠오르지 않는 부분도 있었고 새로 알게 된 점도 있었습니다. 다음은 저의 풀이과정입니다.
- DFS로 시도하였으나 최소의 칸 수이기 때문에 DFS로는 조금 까다로울 것 같아서 BFS를 선택했습니다.
- BFS로 어떻게 최소의 칸수를 구할까 고민하던 중 지금 문제는 최소 경로가 아닌 최소의 칸수라는 것을 알았습니다. 최소 경로와 최소의 칸수는 같은듯 다른 의미를 갖습니다. 여기서 최소의 칸수는 BFS의 레벨이며 이 레벨을 통해 특정 지점까지 도달하는 최소의 칸수를 알 수 있습니다.
코드는 다음과 같습니다.