[SWEA][Python3] 3421. 수제 버거 장인
2019. 5. 31. 01:54 |
프로그래밍/삼성 SWEA
나의 풀이 :
T = int(input())
for tc in range(1, T + 1):
N, M = map(int, input().split())
bad_set = set()
for _ in range(M):
a, b = map(int, input().split())
k = 2**(a-1) + 2**(b-1)
bad_set.add(k)
ans = 0
for i in range(2**N):
for bad in bad_set:
if i & bad == bad:
break
else:
ans += 1
print('#{} {}'.format(tc, ans))
한마디 :
당연히 Timeout일 것으로 생각하고 Brute-Force 답안을 제출했는데 의외로 통과되었다. 부분집합의 갯수는 2**N 만큼 존재하는데, 각각 피해야 하는 조합과 Bitwise AND 연산을 해서 필터링 한다.
'프로그래밍 > 삼성 SWEA' 카테고리의 다른 글
[SWEA][Python3] 1256. [S/W 문제해결 응용] 6일차 - K번째 접미어 (0) | 2019.05.30 |
---|---|
[SWEA][Python3] 3503. 초보자를 위한 점프대 배치하기 (0) | 2019.05.30 |
[SWEA][Python3] 1259. [S/W 문제해결 응용] 7일차 - 금속막대 (0) | 2019.05.29 |
[SWEA][Python3] 1265. [S/W 문제해결 응용] 9일차 - 달란트2 (0) | 2019.05.29 |
[SWEA][Python3] 4112. 이상한 피라미드 탐험 (0) | 2019.05.27 |
[SWEA][Python3] 1798. 범준이의 제주도 여행 계획 (0) | 2019.05.23 |
[SWEA][Python3] 1248. [S/W 문제해결 응용] 3일차 - 공통조상 (0) | 2019.05.18 |
[SWEA][Python3] 1245. [S/W 문제해결 응용] 2일차 - 균형점 (1) | 2019.05.17 |
최근에 달린 댓글 최근에 달린 댓글