코테 준비
https://www.acmicpc.net/problem/1043
1043번: 거짓말
지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게
www.acmicpc.net
import sys
input = lambda: sys.stdin.readline().rstrip()
N, M = map(int, input().split())
knowns = set(map(int, input().split()[1:]))
party = [list(map(int, input().split()[1:])) for _ in range(M)]
visited = [False] * (N+1)
q = list(knowns)
while q:
known = q.pop()
visited[known] = True
for attendees in party:
if known in attendees:
for attendee in attendees:
if not visited[attendee]:
knowns.add(attendee)
q.append(attendee)
result = 0
for attendees in party:
flag = True
for known in knowns:
if known in attendees:
flag = False
break
if flag:
result += 1
print(result)
I=lambda:[*map(int,input().split())]
n,m=I()
c,*k=I()
k={*k}
p=[{*I()[1:]}for _ in range(m)]
for i in p:
for i in p:
if i&k:k|=i
r=0
for i in p:
if not i&k:r+=1
print(r)
재밌는 답안이 있었다.
교집합을 이용하면 연산을 간단하게 구현할 수 있음을 배웠다.
for i in p: 가 반복되는 것도 인상적이었다.
'알고리즘' 카테고리의 다른 글
무방향 그래프와 서로소 집합 (0) | 2023.12.10 |
---|---|
n-queen 구현 (1) | 2023.12.03 |
11.27 알고리즘 문제풀이 (0) | 2023.11.27 |
11.23 알고리즘 문제풀이 (0) | 2023.11.23 |
11.21 알고리즘 문제풀이 (2) | 2023.11.21 |