하효닝
log(hahyun ^ B)
하효닝
전체 방문자
오늘
어제
  • 분류 전체보기 (140)
    • Diary (0)
    • Web (7)
    • Frontend (8)
    • Python (44)
      • Python (1)
      • Algorithm (13)
      • Coding Test (30)
    • Django (3)
      • Django (2)
      • Django Rest (1)
    • Java (14)
      • Java (10)
      • Java Tuning (4)
    • Spring (34)
      • Spring (7)
      • Spring MVC (5)
      • DB 접근기술 (1)
      • JPA (10)
      • Spring Security (3)
      • Rest API (8)
    • Computer Science (26)
      • Operating System (8)
      • Linux (2)
      • Network (2)
      • Database (9)
      • SQL Tuning (5)
    • AWS (2)
    • Git (0)
    • etc (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
하효닝

log(hahyun ^ B)

Python/Coding Test

16960 스위치와 램프

2022. 2. 13. 17:58

문제

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

 

16960번: 스위치와 램프

첫째 줄에 스위치의 수 N, 램프의 수 M이 주어진다. 둘째 줄부터 N개의 줄에는 스위치에 대한 정보가 주어진다. 스위치 정보의 첫 번째 정수는 그 스위치와 연결된 램프의 수이고, 이후 연결된 램

www.acmicpc.net

 

접근

  • N개의 스위치마다 해당 스위치를 누르지 않았을 때 M개의 모든 램프를 켤 수 있는지 확인한다.
  • 한 스위치에 M개의 램프가 연결된 경우에는 항상 N-1개의 스위치로 모든 램프를 켤 수 있기 때문에, 실제 시간 복잡도는 이론상 계산한 O(N^2 * M) 보다 훨씬 작을 것이다.

 

풀이

  • 각 스위치에 연결된 램프를 저장하기 위해 딕셔너리 사용
  • 각 스위치를 누르지 않았을 때 N-1개의 스위치로 모든 램프를 켤 수 있는지 check 배열로 확인
n, m = map(int, input().split())

connect = dict()
for i in range(1, n + 1):
    k, *num = map(int, input().split())
    connect[i] = num

for i in range(1, n + 1):
    check = [False] * (m + 1)
    for j in range(1, n + 1):
        if i == j:
            continue

        for x in connect[j]:
            check[x] = True

    if sum(check) == m:
        print(1)
        break
else:
    print(0)

 

'Python > Coding Test' 카테고리의 다른 글

2485 가로수  (0) 2022.02.14
19235 모노미노도미노  (0) 2022.02.13
1781 컵라면  (0) 2022.02.10
17175 피보나치는 지겨웡~  (0) 2022.02.10
15918 랭퍼든 수열쟁이야!!  (0) 2022.02.09
    'Python/Coding Test' 카테고리의 다른 글
    • 2485 가로수
    • 19235 모노미노도미노
    • 1781 컵라면
    • 17175 피보나치는 지겨웡~
    하효닝
    하효닝

    티스토리툴바