[Python] ๋ฐฑ์ค€ 11729 - ํ•˜๋…ธ์ด ํƒ‘ ์ด๋™ ์ˆœ์„œ

2020. 8. 17. 23:18ยทAlgorithm

 

๋ฌธ์ œ

์„ธ ๊ฐœ์˜ ์žฅ๋Œ€๊ฐ€ ์žˆ๊ณ  ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์—๋Š” ๋ฐ˜๊ฒฝ์ด ์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ์˜ ์›ํŒ์ด ์Œ“์—ฌ ์žˆ๋‹ค. ๊ฐ ์›ํŒ์€ ๋ฐ˜๊ฒฝ์ด ํฐ ์ˆœ์„œ๋Œ€๋กœ ์Œ“์—ฌ์žˆ๋‹ค. ์ด์ œ ์ˆ˜๋„์Šน๋“ค์ด ๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์—์„œ ์„ธ ๋ฒˆ์งธ ์žฅ๋Œ€๋กœ ์˜ฎ๊ธฐ๋ ค ํ•œ๋‹ค.

  1. ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ์˜ ์›ํŒ๋งŒ์„ ๋‹ค๋ฅธ ํƒ‘์œผ๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋‹ค.
  2. ์Œ“์•„ ๋†“์€ ์›ํŒ์€ ํ•ญ์ƒ ์œ„์˜ ๊ฒƒ์ด ์•„๋ž˜์˜ ๊ฒƒ๋ณด๋‹ค ์ž‘์•„์•ผ ํ•œ๋‹ค.

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ด๋™ ์ˆœ์„œ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. ๋‹จ, ์ด๋™ ํšŸ์ˆ˜๋Š” ์ตœ์†Œ๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์€ ์›ํŒ์ด 5๊ฐœ์ธ ๊ฒฝ์šฐ์˜ ์˜ˆ์‹œ์ด๋‹ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ฒซ ๋ฒˆ์งธ ์žฅ๋Œ€์— ์Œ“์ธ ์›ํŒ์˜ ๊ฐœ์ˆ˜ N (1 ≤ N ≤ 20)์ด ์ฃผ์–ด์ง„๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์˜ฎ๊ธด ํšŸ์ˆ˜ K๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ ์ˆ˜ํ–‰ ๊ณผ์ •์„ ์ถœ๋ ฅํ•œ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ K๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋‘ ์ •์ˆ˜ A B๋ฅผ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ถœ๋ ฅํ•˜๋Š”๋ฐ, ์ด๋Š” A๋ฒˆ์งธ ํƒ‘์˜ ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์›ํŒ์„ B๋ฒˆ์งธ ํƒ‘์˜ ๊ฐ€์žฅ ์œ„๋กœ ์˜ฎ๊ธด๋‹ค๋Š” ๋œป์ด๋‹ค.


์ •๋‹ต

def hanoi(n, from_pos, to_pos, aux_pos): #from : ์ถœ๋ฐœ / to : ๋„์ฐฉ / aux : ๋ณด์กฐ
    if n == 1:
        print(from_pos, to_pos)
        return 
    hanoi(n - 1, from_pos, aux_pos, to_pos)
    print(from_pos, to_pos)

    hanoi(n - 1, aux_pos, to_pos, from_pos)


n = int(input())
# N์ธต์งœ๋ฆฌ ํ•˜๋…ธ์ด์˜ ํƒ‘์„ ์˜ฎ๊ธฐ๋ ค๋ฉด 2^N - 1 ๋ฒˆ ์˜ฎ๊ฒจ์•ผํ•œ๋‹ค.
result = 1
for i in range(1, n+1):
    result = result * 2

print(result - 1)

hanoi(n, 1, 3, 2)

์›๋ฐ˜์ด ํ•œ ๊ฐœ๋ฉด ๊ทธ๋ƒฅ ์˜ฎ๊ธฐ๋ฉด ๋๋‚œ๋‹ค.

 

๋งŒ์•ฝ ์›๋ฐ˜์ด N๊ฐœ์ผ ๊ฒฝ์šฐ

1. 1๋ฒˆ ๊ธฐ๋‘ฅ์— ์žˆ๋Š” N๊ฐœ์˜ ์›๋ฐ˜ ์ค‘ N-1๊ฐœ ๋ฅผ 2๋ฒˆ ๊ธฐ๋‘ฅ์œผ๋กœ ์˜ฎ๊ธด๋‹ค.

(์ด๋•Œ 3๋ฒˆ ๊ธฐ๋‘ฅ์„ ๋ณด์กฐ ๊ธฐ๋‘ฅ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.)

2. 1๋ฒˆ ๊ธฐ๋‘ฅ์— ๋‚จ์•„ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์›๋ฐ˜์„ 3๋ฒˆ ๊ธฐ๋‘ฅ์œผ๋กœ ์˜ฎ๊ธด๋‹ค.

3. 2๋ฒˆ ๊ธฐ๋‘ฅ์— ์žˆ๋Š” N-1๊ฐœ ์›๋ฐ˜์„ ๋‹ค์‹œ 3๋ฒˆ ๊ธฐ๋‘ฅ์œผ๋กœ ์˜ฎ๊ธด๋‹ค.

(์ด๋•Œ 1๋ฒˆ ๊ธฐ๋‘ฅ์„ ๋ณด์กฐ ๊ธฐ๋‘ฅ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.)

'Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 1427 - ์†ŒํŠธ์ธ์‚ฌ์ด๋“œ  (0) 2020.08.20
[Python] ๋ฐฑ์ค€ 1436 - ์˜ํ™”๊ฐ๋… ์ˆŒ  (0) 2020.08.19
[Python] ๋ฐฑ์ค€ 11654 - ์•„์Šคํ‚ค ์ฝ”๋“œ  (0) 2020.08.16
[Python] ๋ฐฑ์ค€ 11399 - ATM  (0) 2020.08.13
[Python] ๋ฐฑ์ค€ 11047 - ๋™์ „ 0  (0) 2020.08.12
'Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Python] ๋ฐฑ์ค€ 1427 - ์†ŒํŠธ์ธ์‚ฌ์ด๋“œ
  • [Python] ๋ฐฑ์ค€ 1436 - ์˜ํ™”๊ฐ๋… ์ˆŒ
  • [Python] ๋ฐฑ์ค€ 11654 - ์•„์Šคํ‚ค ์ฝ”๋“œ
  • [Python] ๋ฐฑ์ค€ 11399 - ATM
๐ŸฅญMango
๐ŸฅญMango
  • ๐ŸฅญMango
    AppleMango๐Ÿฅญ
    ๐ŸฅญMango
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
      • iOS
        • Swift
        • SwiftUI
        • RxSwift
      • Algorithm
        • C
        • Python
        • Swift
      • Computer Science
        • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ
        • OS
      • ...
      • ๊ฐœ๋ฐœ ํƒ€์ž„์บก์А
        • Python
        • Flutter
        • Android
        • Kotlin
        • Java
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ํŒŒ์ด์ฌ 1459
    14503 ํŒŒ์ด์ฌ
    1613 ์—ญ์‚ฌ
    ํŒŒ์ด์ฌ 6118
    Code Base
    Apple Login
    ์Šคํƒ
    typing animation
    Custom Map Marker
    ํŒŒ์ด์ฌ ์ •๋ ฌ
    ๋ฐฑ์ค€ ์†Œ์ˆ˜
    ์—ญ์‚ฌ ํŒŒ์ด์ฌ
    swiftUI Gradients
    ๋ฐฑ์ค€ ํ† ๋งˆํ† 
    ํŒŒ์ด์ฌ 14503
    MapMarker
    SwiftUI Apple Login
    SwiftUI
    1์ฐจ์› ๋ฟŒ์š”๋ฟŒ์š”
    ์ฝ”ํ‹€๋ฆฐ ์ƒ์†
    6118
    ํ† ๋งˆํ† 
    ์ฝ”ํ‹€๋ฆฐ
    Swift Hello World!
    swiftUI tabview
    ํŒŒ์ด์ฌ ํ† ๋งˆํ† 
    14503 ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ
    IOS
    1613 ํŒŒ์ด์ฌ
    ํŒŒ์ด์ฌ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.2
๐ŸฅญMango
[Python] ๋ฐฑ์ค€ 11729 - ํ•˜๋…ธ์ด ํƒ‘ ์ด๋™ ์ˆœ์„œ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”