Algorithms

[백준] 11729번: ķ•˜ė…øģ“ģ˜ ķƒ‘ ģ“ė™ ģˆœģ„œ - python

thals0 2022. 12. 30. 13:56
728x90

https://www.acmicpc.net/problem/11729

 

11729번: ķ•˜ė…øģ“ ķƒ‘ ģ“ė™ ģˆœģ„œ

세 ź°œģ˜ ģž„ėŒ€ź°€ ģžˆź³  첫 번째 ģž„ėŒ€ģ—ėŠ” ė°˜ź²½ģ“ ģ„œė”œ 다넸 nź°œģ˜ ģ›ķŒģ“ ģŒ“ģ—¬ ģžˆė‹¤. 각 ģ›ķŒģ€ ė°˜ź²½ģ“ 큰 ģˆœģ„œėŒ€ė”œ ģŒ“ģ—¬ģžˆė‹¤. ģ“ģ œ ģˆ˜ė„ģŠ¹ė“¤ģ“ ė‹¤ģŒ ź·œģ¹™ģ— ė”°ė¼ 첫 번째 ģž„ėŒ€ģ—ģ„œ 세 번째 ģž„ėŒ€ė”œ

www.acmicpc.net

 

정답:

def hanoi(n,a,b,c):
  if n==1:
    print(a,c)
  else:
    hanoi(n-1,a,c,b)
    print(a,c)
    hanoi(n-1,b,a,c)

n=int(input())
print(2**n-1) # ģ“ė™ 횟수 
hanoi(n,1,2,3)

 

ķ’€ģ“:

 

먼저 n-1개넼 C넼 ģ“ģš©ķ•“ģ„œ B딜 옮기고 

A에 ė‚Øģ€ ķ•˜ė‚˜ėŠ” ģ‰½ź²Œ C딜 옮길 수 ģžˆģŒ 

B에 ģžˆėŠ” n-1개넼 A넼 ģ“ģš©ķ•“ģ„œ C딜 옮기멓 ė !

 

ė³µģž”ė„ O(n^2) 

ė” 효율적으딜 źµ¬ķ˜„ķ•  순 ģ—†ėŠ”ė“Æ..?!

728x90