문제링크:https://www.acmicpc.net/problem/1914
import sys
n = int(sys.stdin.readline())
# n: 원판 갯수 , 1번기둥(start) - s기둥, 2번 기둥(middle) - m 기둥, 3번 기둥(end) - e 기둥
def hanoi(n, s, e):
m = 6 - s - e # 2번기둥
if n == 1:
print(s, e) #
else:
hanoi(n - 1, s, m) # n-1 의 원판을 전부 s -> m (그 안에서 print 1,3 -> 1,2 -> 3,2...)
print(s, e) #남은 하나를 s -> e 1,3
hanoi(n - 1, m, e) # m에 위치한 n-1의 원판을 전부 -> e로
print(2 ** n - 1) # n개의 판 이동횟수 구하는 식
if n <= 20: # 조건
hanoi(n, 1, 3)
'Algorithm > 백준(파이썬)' 카테고리의 다른 글
백준 1074 파이썬(Python) 문제풀이 Z (0) | 2023.04.12 |
---|---|
백준 9663 파이썬(Python) 문제풀이 N-Queen(N퀸) (0) | 2023.04.12 |
백준 2628 파이썬(Python) 문제풀이 종이자르기 (0) | 2023.04.11 |
백준 1065 파이썬(Python) 문제풀이 한수 (0) | 2023.04.11 |
백준 9020 파이썬(Python) 문제풀이 골드바흐의 추측 (0) | 2023.04.11 |