白準/ハノイタワー移動順/1729
Question
質問リンク
Silver 1
Logic
デフォルトの構造:再帰
ハノイタワーは以下の通りです.
始点1はs,目的地3はd,中間点2はtである.
3-1. N=2の場合、2番目のディスクを3に送信する場合は、まず1番目のディスクを2に送信する必要があります.(1 2).
3-2. 次に2番目のディスク(1 3)を移動し、
3-3. 最初のディスクを再び最終目的地(23)に移動します.
4.一般化すると、N個をSからDに移動するためには、まずN−1個をSからTに移動し、次にSからDに移動し、N−1個をTからDに移動する.
5.次のように再帰的に表す.
Code
質問リンク
Silver 1
Logic
デフォルトの構造:再帰
ハノイタワーは以下の通りです.
始点1はs,目的地3はd,中間点2はtである.
3-2. 次に2番目のディスク(1 3)を移動し、
3-3. 最初のディスクを再び最終目的地(23)に移動します.
4.一般化すると、N個をSからDに移動するためには、まずN−1個をSからTに移動し、次にSからDに移動し、N−1個をTからDに移動する.
5.次のように再帰的に表す.
Code
from sys import stdin
S,T,D = '1','2','3'
res=[]
def hanoi(n,s,d,t):
if n==0 : return
hanoi(n-1,s,t,d)
res.append(s+' '+d)
hanoi(n-1,t,d,s)
N = int(stdin.readline().rstrip())
hanoi(N,S,D,T)
print(len(res))
print('\n'.join(res))
Reference
この問題について(白準/ハノイタワー移動順/1729), 我々は、より多くの情報をここで見つけました https://velog.io/@swany0509/백준-하노이-탑-이동순서-11729テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol