백준 11729 하노이탑

Hyun·2022년 9월 24일
0

코딩테스트

목록 보기
7/66

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

실패이유 : 구현실패

def move(start, end):
    print(start, end)


def hanoi_tower(n, start, end):

    if n == 1:
        move(start, end)
        return

    hanoi_tower(n - 1, start, 6 - start - end)	# 1단계
    move(start, end)							# 2단계
    hanoi_tower(n - 1, 6 - start - end, end)	# 3단계


N = int(input())
print(2 ** N - 1)
hanoi_tower(N, 1, 3)

  • 6 - start - end 는 번호를 모르는 막대로의 이동을 의미한다.
    • 6 은 1, 2, 3 모든 막대의 합

  • 원판 3개인 경우의 함수 흐름은 다음과 같다.


  • n 개의 탑의 이동 횟수는 다음과 같이 구할 수 있다.


출처: 코드플러스 - 알고리즘 중급 1/3 강의
https://code.plus/course/43

0개의 댓글

관련 채용 정보