✍배운것
list 배열 만들고 해당 위치의 인덱스 값을 출력
👍잘한점
일단 구현 시도 해본 것. 항상 구현이 좀 귀찮을 것 같으면 그냥 넘어 갔다.
딕셔너리를 활용한 visited 구현
😅어려웠던점
set을 활용해 중복인 답을 제거 할려 했으나
set이 순서를 보장 못해주는 경우가 존재
🙄개선점
a, b, c 를 리스트 안에 넣고 구현을 하였으면 코드가 더 간단했을 것.
def DFS(a, b, c):
if a == 0:
arr[c] = True
if visited.get((a,b,c), 1):
visited[(a,b,c)] = 0
if a != 0:
if B-b <= a:
DFS(a-B+b, B, c)
elif B-b > a:
DFS(0, a+b, c)
if C-c <= a:
DFS(a-C+c, b, C)
elif C-c > a:
DFS(0, b, a+c)
if b != 0:
if A-a <= b:
DFS(A, b-A+a, c)
else:
DFS(a+b, 0, c)
if C-c <= b:
DFS(a, b-C+c, C)
else:
DFS(a, 0, c+b)
if C != 0:
if A-a <= c:
DFS(A, b, c-A+a)
else:
DFS(a+c, b, 0)
if B-b <= c:
DFS(a, B, c-B+b)
else:
DFS(a, b+c, 0)
A, B ,C = list(map(int ,input().split()))
visited = {}
arr = [False] * 210
DFS(0,0,C)
for i in range(210):
if arr[i]:
print(i, end=" ")