혼공파 70강
1. 하노이의 탑
# 3개의 기둥과 크기가 다른 원판들이 원뿔로 존재한다.
# 한번에 한 개의 원판만 옮길 수 있다.
# 큰 원판이 작은 원판 위에 있어서는 안된다.
# 기본적으로 원판의 개수가 n개 일때 2^n - 1회 움직여야 원판을 모두 옮길 수 있다고 알려져 있다.
# 원판의 개수가 4개 일 때 어떻게 옮겨야하는지 출력하는 프로그램 작성
카운터 = 0
def 하노이탑(원판개수, 시작기둥, 대상기둥, 보조기둥):
global 카운터
if 원판개수 == 1:
print(시작기둥, "->", 대상기둥)
카운터 += 1
else:
하노이탑(원판개수 - 1, 시작기둥, 보조기둥, 대상기둥)
print(시작기둥, "->", 대상기둥)
카운터 += 1
하노이탑(원판개수 - 1, 시작기둥, 보조기둥, 대상기둥)
원판개수 = int(input("원판의 개수를 입력하세요: "))
하노이탑(원판개수, "A", "B", "C")
print(f" \n총 원판의 이동 횟수는 {카운터}입니다.")
'Base > Python' 카테고리의 다른 글
21. 구문 오류와 예외 / 기본적인 예외처리 방법 / 예외처리 구문 (0) | 2023.03.24 |
---|---|
20. 파이썬 설치 및 환경설정 (0) | 2023.03.23 |
18. 이터러블/이터레이터/제너레이터 함수와 표현식 / 가독성 / 유지보수성 / 깊이우선탐색트리 알고리즘 구현 / (1) | 2023.03.10 |
17. 기본 파일처리 / CSV 파일 읽고 쓰기 (0) | 2023.03.08 |
16. 콜백함수 / map/filter 함수 / 람다 key 키워드 매개변수 (0) | 2023.03.03 |
댓글