bong-u/til

백준 - 1043 : 거짓말 (G4)

수정일 : 2024-11-15

 1N, M = map(int, input().split())
 2T = list(map(int, input().split()))
 3T = set(T[1:])
 4
 5member = [set() for _ in range(N)]
 6party = []
 7visit = [False]*M
 8
 9def explore(n):
10    for i in member[n]:
11        if not visit[i]:
12            visit[i] = True
13            for j in party[i]:
14                explore(j-1)
15
16for i in range(M):
17    lst = list(map(int, input().split()))
18    lst = lst[1:]
19    for j in lst:
20        member[j-1].add(i)
21    party.append(set(lst))
22
23for i in T:
24    explore(i-1)
25
26cnt = 0
27for i in visit:
28    if not i:
29        cnt += 1
30
31print (cnt)
  • 내방식대로 푸는데 오래걸렸다
  • 유니온 파인드로 푸는 사람도 있었다