Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- DP
- 따라하면서 배우는 C언어
- 생활코딩
- Math
- Algospot
- String
- BASIC
- 따배씨
- BOJ
- JavaScript
- server
- 정수론
- Python
- Algorithm
- 종만북
- web
- udemy
- 따라하며 배우는 C언어
- sorting
- programmers
- dfs
- 인프런
- greedy
- 백준
- Cleancode
- C언어
- BFS
- graph
- C
- php
Archives
- Today
- Total
몽상실현개발주의
[BOJ] 11729 / 하노이 탑 이동 순서 / Python 파이썬 본문
[BOJ] 11729 / 하노이 탑 이동 순서 / Python 파이썬
https://www.acmicpc.net/problem/11729
풀이
유명한 하노이의 탑 문제를 부할정복으로 푸는 문제이다.
마지막 원판을 3번 장대로 옮기기 위한 방법은 다음과 같다.
- 마지막 원판을 제외한 원판을 2번 장대로 옮기기
- 마지막 원판을 3번 장대로 옮기기
- 2번 장대의 모든 원판을 3번 장대로 옮기기
그리고 마지막 원판을 옮기기 위해서는 그 이전의 원판들의 작업이 진행 되어야 한다.
그러므로 각 원판들의 부분 문제를 해결하여 전체의 문제를 해결 할 수 있다.
N = int(input())
def hanoi(n, From, notMove, To):
if n == 1:
move.append([From, To])
return
hanoi(n-1, From, To, notMove)
move.append([From, To])
hanoi(n-1, notMove, From, To)
move = []
hanoi(N, 1, 2, 3)
print(len(move))
for m in move:
print(m[0], m[1])
'Algorithm PS > BOJ' 카테고리의 다른 글
[BOJ] 2448 / 별 찍기 - 11 / Python 파이썬 (0) | 2021.06.28 |
---|---|
[BOJ] 2447 / 별 찍기 - 10 / Python 파이썬 (0) | 2021.06.28 |
[BOJ] 1780 / 종이의 개수 / Python 파이썬 (0) | 2021.06.22 |
[BOJ] 1992 / 쿼드트리 / Python 파이썬 (0) | 2021.06.21 |
[BOJ] 11728 / 배열 합치기 / Python 파이썬 (0) | 2021.06.21 |
Comments