[SWEA][Python3] 1259. [S/W 문제해결 응용] 7일차 - 금속막대
2019. 5. 29. 01:59 |
프로그래밍/삼성 SWEA
나의 풀이 :
def dfs(path):
if len(path) == n:
return path[:]
for i in range(n):
if visited[i]:
continue
if not path or screws[path[-1]][1] == screws[i][0]:
visited[i] = 1
ret = dfs(path + [i])
if ret:
return ret
visited[i] = 0
T = int(input())
for tc in range(1, T + 1):
n = int(input())
line = input().split()
screws = [tuple(line[i:i+2]) for i in range(2*n) if i % 2 == 0]
visited = [0]*n
ret = dfs([])
ans = []
for i in ret:
ans.extend(screws[i])
print('#{} {}'.format(tc, ' '.join(ans)))
한마디 :
사실 위 풀이는 엄밀히 말하면 틀렸다. 모든 tc에서 남는 나사 없이 모두 연결된 상태의 정답이 존재한다고 가정하고 풀었기 때문이다.
'프로그래밍 > 삼성 SWEA' 카테고리의 다른 글
[SWEA][Python3] 3421. 수제 버거 장인 (0) | 2019.05.31 |
---|---|
[SWEA][Python3] 1256. [S/W 문제해결 응용] 6일차 - K번째 접미어 (0) | 2019.05.30 |
[SWEA][Python3] 3503. 초보자를 위한 점프대 배치하기 (0) | 2019.05.30 |
[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 |
최근에 달린 댓글 최근에 달린 댓글