백준 9372 - 상근이의 여행 (파이썬)
모든 국가가 연결되어 있기 때문에 N - 1을 출력하면 됩니다. 하지만 탐색으로 한번 풀어봤습니다. 방문하지 않은 루트로 1을 더해주면서 이동하는 쉬운 방법으로 해결했습니다.
모든 국가가 연결되어 있기 때문에 N - 1을 출력하면 됩니다. 하지만 탐색으로 한번 풀어봤습니다. 방문하지 않은 루트로 1을 더해주면서 이동하는 쉬운 방법으로 해결했습니다.
이번 문제는 union-find 알고리즘으로 해결했습니다. 문제의 입력이 숫자가 아닌 문자열이여서 dictionary 자료구조를 사용했습니다.
입력되는 점들마다 find연산을 해서 부모가 같은지 확인해서 해결했습니다. 입력된 두개의 점들의 부모가 같다면 이미 연결되어 있는 상태이므로 사이클이 발생합니다.
이번 문제는 union-find 알고리즘으로 해결할 수 있습니다. tmp 리스트를 받는 부분을 보시면 1이면 연결 되어 있다는 뜻이므로 union함수를 호출해 주시면 됩니다.
Answer