Z
-
[백준/유니온파인드] 20040번. 사이클게임(JavaScript)🧠𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/💛 백준 2021. 7. 26. 17:02
문제 https://www.acmicpc.net/problem/20040 풀이 게임을 진행하다가 처음으로 사이클을 완성하는 순간 게임이 종료된다. 몇번째 차례에서 사이클이 완성되었는지, 혹은 아직 게임이 진행중인지 판단하는 문제이다. 즉, 지금까지 그린 선분이 사이클이 이뤄진 것인지 판단하는 문제이다. 현재 제공되는 두 개의 노드의 부모가 같은지 (=하나의 집합인지) 보면 해결되는 유니온 파인드 문제이다. 알고리즘은 다음과 같다. 노드와 노드를 잇기 전에 두 개가 같은 그래프 내에 속해 있는지 두 노드의 부모노드를 확인한다. 부모노드가 같다면 몇 번째 차례에서 완성되었는지 출력한다. 부모노드가 다르다면, 각각의 부모노드를 구한다음 더 작은 값 쪽으로 부모를 합쳐준다. 코드는 다음과 같다. const fs..