[알고리즘] 코틀린 BFS(너비우선탐색) 의 level 구하기
BFS는 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법이다. 코드로 구현할 때에는 큐를 이용해서 구현하는데, 시작점을 큐에 삽입하고, 큐를 반환하면서 다음 레벨의 모든 노드를 검사하여 연결된 모든 노드들을 큐에 삽입하며 전부 탐색하는 방식으로 구현한다. 여기서 레벨을 알아내려면, BFS의 반복문에 현재 들어와있는 큐의 개수만큼만 반복하게 하는 조건을 하나 더 달아주고 카운트하면, 원하는 노드의 레벨을 알 수 있다. 시작점과 그 노드의 레벨은 곧 그 두 점 사이의 거리를 뜻한다. 응용하는 문제로 www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 ..