문제
https://www.acmicpc.net/problem/11729
문제는 위 사이트를 참고해주세요.
풀이
N = int(input())
def hanoi(n, start, to, end):
if n == 1:
print(start, end)
else:
hanoi(n-1, start, end, to)
print(start, end)
hanoi(n-1, to, start, end)
print(2**N-1)
hanoi(N, 1, 2, 3)
하노이 탑을 어떻게 코딩해야할지 몰라서 고생했네요.
위에 코드가 최종 코드고
아래 코드가 하노이 탑 코드를 이해하기 위해서 만들어본 코드입니다.
N = int(input())
moveList = []
def hanoi(n, start, to, end):
if n == 1:
return moveList.append([start, end])
else:
print("1")
hanoi(n-1, start, end, to)
print("moveList1", moveList)
print("2")
moveList.append([start, end])
print("moveList2", moveList)
print("3")
hanoi(n-1, to, start, end)
print("moveList3", moveList)
hanoi(N, 1, 2, 3)
print(moveList)
결과
'IT > 알고리즘' 카테고리의 다른 글
1일 N알고리즘 - #34 (0) | 2020.06.01 |
---|---|
1일 N알고리즘 - #33 (0) | 2020.06.01 |
1일 N알고리즘 - #31 (0) | 2020.05.28 |
1일 N알고리즘 - #30 (0) | 2020.05.28 |
1일 N알고리즘 - #29 (0) | 2020.05.27 |
댓글