[level 3] Title: 하노이의 탑 파이썬

2022. 5. 31. 16:42·개인공부/알고리즘

 

하노이 탑은 재귀로 풀어야한다고 들어보기만 하였다. 재귀는 아직 연습이 부족한지, 생각만 해도 머리가 지끈거린다...

현재의 내 머리로는 잘 이해가 가지 않아 유튜브 영상을 보고 이해 한 뒤, 코드를 작성했다.

 

참고한 유튜브 영상, 이해하는데 많은 도움이 됬다.

 

재귀함수에서는 종료 조건이 필수적이기에, n == 1일 때 answer에 값을 더해줌으로써 재귀를 멈추었다. 

 

def solution(n):
    answer = []
    
    def hanoi(n, start, end, mid):
        nonlocal answer
        if n == 1:      
            answer.append([start, end])
        else:
            hanoi(n-1, start, mid, end)
            answer.append([start, end])
            hanoi(n-1, mid, end, start)
        
    hanoi(n, 1,3,2)
    return answer

 

코드 제출 후, 다른사람들의 풀이를 보는데 다른건 다 이해가 가는데(찾아보고나서), 이건 이해가 잘 안간다..

def hanoi(f, t, m, n):
    if n == 0:
        return []

    return hanoi(f, m, t, n-1) + [[f, t]] + hanoi(m, t, f, n-1)


def solution(n):
    return hanoi(1, 3, 2, n)

공부를 더 해봐야할 듯하다..

 

 

 

코딩테스트 연습 - 하노이의 탑

하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대

programmers.co.kr

 

728x90
저작자표시 (새창열림)

'개인공부 > 알고리즘' 카테고리의 다른 글

프로그래머스 - 다음에 올 숫자 (Kotlin)  (0) 2023.07.23
프로그래머스 - 옹알이(1) (Kotlin)  (0) 2023.07.23
[level 3] Title: 멀리 뛰기 파이썬  (0) 2022.05.31
[level 3] Title: 숫자 게임 파이썬  (0) 2022.05.30
[level 3] Title: 가장 긴 팰린드롬 파이썬  (0) 2022.05.30
'개인공부/알고리즘' 카테고리의 다른 글
  • 프로그래머스 - 다음에 올 숫자 (Kotlin)
  • 프로그래머스 - 옹알이(1) (Kotlin)
  • [level 3] Title: 멀리 뛰기 파이썬
  • [level 3] Title: 숫자 게임 파이썬
KEEMSY
KEEMSY
JUST DO IT
목적, 수단, 목표JUST DO IT
KEEMSY
목적, 수단, 목표
KEEMSY
전체
오늘
어제
  • 분류 전체보기
    • 회고
      • WIL
      • TIL
    • Project
    • 개인공부
      • 알고리즘
      • 아키텍처
      • 트러블슈팅
      • 테스팅
      • git
      • 배포

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

hELLO· Designed By정상우.v4.5.2
KEEMSY
[level 3] Title: 하노이의 탑 파이썬

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.