honey_pot
[Python] 하노이의 탑 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12946
https://shoark7.github.io/programming/algorithm/tower-of-hanoi
위 링크에 알고리즘이 잘 설명되어 있다 첫번째 코드는 위 링크의 설명대로 작성했다
두번째 코드는 move 함수를 쓰지 않고 hanoi 함수 하나로 해결하는 코드다
hanoi 함수로만 풀이할 경우 move 함수 대신 hanoi 함수에 n==1 파라미터를 주고 answer에 이동과정을 저장하는 조건문으로 변경한다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
def solution(n):
answer = []
def hanoi(n,start,via,to):
if n == 1:
move(1,start,to)
else:
hanoi(n-1,start,to,via)
move(n,start,to)
hanoi(n-1,via, start,to)
def move(n, start, to):
answer.append([start,to])
hanoi(n,1,2,3)
return answer
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
|
def solution(n):
answer = []
def hanoi(n,start,via,to):
if n == 1:
answer.append([start,to])
else:
hanoi(n-1,start,to,via) # 1에서 3을 거쳐 2로
hanoi(1,start,via,to) # 저장 부분
hanoi(n-1,via,start,to) # 2에서 1을 거쳐 3으로
hanoi(n,1,2,3)
return answer
|
cs |
'문제 풀이' 카테고리의 다른 글
[Python] 정수 삼각형 (0) | 2022.09.22 |
---|---|
[Python] N-Queen (0) | 2022.09.22 |
[Python] 가장 큰 정사각형 찾기 (1) | 2022.09.21 |
[Python] 줄 서는 방법 (1) | 2022.09.21 |
[Python] 쿼드압축 후 개수 세기 (0) | 2022.09.21 |
Comments