[프로그래머스 Lv.2] 하노이의 탑

2024. 12. 18. 14:13·코딩테스트
728x90
반응형

문제

하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다.

세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있습니다.

게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서 그대로 다른 기둥으로 옮겨서 다시 쌓는 것입니다.

  1. 한 번에 하나의 원판만 옮길 수 있습니다.
  2. 큰 원판이 작은 원판 위에 있어서는 안됩니다.

하노이 탑의 세 개의 기둥을 왼쪽 부터 1번, 2번, 3번이라고 하겠습니다.

1번에는 n개의 원판이 있고 이 n개의 원판을 3번 원판으로 최소 횟수로 옮기려고 합니다. 1번 기둥에 있는 원판의 개수 n이 매개변수로 주어질 때, n개의 원판을 3번 원판으로 최소로 옮기는 방법을 return하는 solution를 완성해주세요.

 

코드

def hanoi(s, t, i, n):
    if n == 0:
        return []
    
    return hanoi(s, i, t, n-1) + [[s, t]] + hanoi(i, t, s, n-1)

def solution(n):
    return hanoi(1,3,2,n)
728x90
반응형

'코딩테스트' 카테고리의 다른 글

[프로그래머스 Lv.2] 2023 카카오 블라인드 채용 - 이모티콘 할인행사  (3) 2024.12.21
[프로그래머스 Lv.2] 2019 카카오 블라인드 채용 - 후보키  (0) 2024.12.18
[프로그래머스 Lv.2] 2021 카카오 채용연계형 인턴십 - 거리두기 확인하기  (1) 2024.12.17
[프로그래머스 Lv.2] 줄 서는 방법 / 코드 상세 설명  (0) 2024.12.17
[프로그래머스 Lv.2] 월간 코드 챌린지 시즌1 - 쿼드압축 후 개수 새기  (2) 2024.12.16
'코딩테스트' 카테고리의 다른 글
  • [프로그래머스 Lv.2] 2023 카카오 블라인드 채용 - 이모티콘 할인행사
  • [프로그래머스 Lv.2] 2019 카카오 블라인드 채용 - 후보키
  • [프로그래머스 Lv.2] 2021 카카오 채용연계형 인턴십 - 거리두기 확인하기
  • [프로그래머스 Lv.2] 줄 서는 방법 / 코드 상세 설명
View synthesis 공부하는 대학원생
View synthesis 공부하는 대학원생
AI - view synthesis에 대해 공부하고 있으며, AI 공부하시는 분들과 함께 소통하고 싶습니다 😍
  • View synthesis 공부하는 대학원생
    Happy Support's Blog
    View synthesis 공부하는 대학원생
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • View synthesis (3)
      • Backbone (5)
      • Generative Models (5)
      • On-device AI (3)
      • ML (2)
      • DL (1)
      • LLM (2)
      • 코딩테스트 (25)
      • 에러 해결 모음집 (12)
      • 기타 (4)
  • 링크

  • 인기 글

  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.3
View synthesis 공부하는 대학원생
[프로그래머스 Lv.2] 하노이의 탑
상단으로

티스토리툴바