본문 바로가기
카테고리 없음

[백준/BOJ] 16960 스위치와 램프 (파이썬 Python)

by 제이리즘 2024. 11. 20.

 

https://www.acmicpc.net/problem/16960

 

우선 입력 받은 모든 램프 번호에 대한 갯수를 저장해 둔다. 

 

그리고 스위치를 하나씩 없애보면서 해당 스위치에 대한 램프 또한 갯수에서 1을 뺀다. 

 

이때 램프 번호 중 0이 한번이라도 존재하지 않는다면, 스위치 하나를 없애도 램프를 다 켤 수 있다는 뜻이므로 

 

스위치 하나를 없앴을 때 램프의 갯수 중 0이 있는지를 확인해 이후 결과를 0 또는 1로 지정한다. 

 

import sys
input = sys.stdin.readline

# input 단계
n, m = map(int, input().split())
lamp = dict(zip(list(range(1, m+1)), [0 for _ in range(1, m+1)]))
switch = [list(map(int, input().split()))[1:] for _ in range(n)]

# 알고리즘
for i in switch:
    for j in i:
        lamp[j] += 1
for i in switch:
    tmp = lamp.copy()
    for j in i:
        tmp[j] -= 1
    if 0 not in tmp.values():
        print(1)
        exit()
print(0)