본문 바로가기
  • KEEP HUSTLE!
파이썬 코테 준비

[백준 20040] 사이클 게임 - Python(파이썬)

by 하수군 2021. 3. 21.

유니온파인드를 이용!!

import sys


def find(x):
    if home[x] < 0:
        return x

    home[x] = find(home[x])
    return home[x]


def union(a, b, idx):
    a, b = find(a), find(b)
	
    # 사이클을 찾는다면 해당 인덱스를 출력하고 종료
    if a == b:
        print(idx)
        sys.exit(0)

    if home[a] < home[b]:
        home[a] += home[b]
        home[b] = a
    else:
        home[b] += home[a]
        home[a] = b


n, m = map(int, sys.stdin.readline().split())
home = [-1] * n

for i in range(1, m+1):
    a, b = map(int, sys.stdin.readline().split())
    union(a, b, i)

print(0)

 

댓글