알고리즘

백준 JS | 11729번 하노이 탑 이동 순서

2022. 7. 7. 19:17
목차
  1. ✅ Solution
출처 : 백준 온라인저지

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

 

11729번: 하노이 탑 이동 순서

세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로

www.acmicpc.net

✅ Solution

const input = require('fs').readFileSync('/dev/stdin').toString().trim();

const N = Number(input);
const answer = [];
let cnt = 0;

function hanoi(n, from, other, to) {
  if (n === 0) {
    return;
  } else {
    hanoi(n - 1, from, to, other);
    answer.push([from, to]);
    cnt++;
    hanoi(n - 1, other, from, to);
  }
}

hanoi(N, "1", "2", "3");
console.log(cnt);
console.log(answer.map((i) => i.join(" ")).join("\n"));

 

 

이번 문제는 로직을 스스로 생각하지 못하고, 다른 사람의 답안을 참고하였으나

이 역시 재귀함수를 사용해야 했는데, 재귀함수에 대한 이해 부족으로 굉장히 오랜시간 고생했던 문제이다.

ZeroCho 님의 유튜브에서 배웠던 Stack 과 Background 방식으로 이해하고자 했는데 아직 잘 이해가 되지 않았고 아래와 같이 손수 실행될 함수들을 나열하여 이해할 수 있었다. 

위 로직에 따라 실행될 hanoi 함수의 parameter들을 나열한 것이다. 이 함수들을 다시 실행 순서대로 나열하면 아래와 같다. 

이렇게 로직이 어떻게 구현되는지에 대해서는 이해를 했지만, 아직도 문제만 보고 재귀함수를 사용하여 이렇게 로직을 구현하긴 어려울 것 같다. 재귀함수에 대한 더 많은 연습이 필요할 듯..

참고

 

 

11729. 하노이 탑 이동 순서 - node.js / javascript

11729. 하노이 탑 이동 순서 - node.js / javascript

velog.io

 

'알고리즘' 카테고리의 다른 글

프로그래머스JS | [1차] 뉴스 클러스터링  (0) 2022.07.29
프로그래머스 JS | 괄호변환  (0) 2022.07.28
프로그래머스 JS | 행렬 테두리 회전하기  (0) 2022.07.06
프로그래머스 JS | 오픈채팅방  (0) 2022.07.02
프로그래머스 JS | [1차] 다트게임  (0) 2022.06.30
  1. ✅ Solution
'알고리즘' 카테고리의 다른 글
  • 프로그래머스JS | [1차] 뉴스 클러스터링
  • 프로그래머스 JS | 괄호변환
  • 프로그래머스 JS | 행렬 테두리 회전하기
  • 프로그래머스 JS | 오픈채팅방
3jun
3jun
3jun
3jun
3jun
전체
오늘
어제
  • 분류 전체보기 (95)
    • 프로젝트 (5)
    • Web (9)
    • JavaScript (19)
    • React (13)
    • 알고리즘 (31)
    • Git (3)
    • AWS (3)
    • TypeScript (3)
    • CS (2)
    • Error (6)
    • 회고 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • msw
  • airbnb style guide
  • state
  • 백준 js
  • 프로그래머스 코딩테스트 js
  • 유효성 로직
  • Promise
  • 자바스크립트
  • outer environment
  • 백준 온라인저지
  • this.props.history.push
  • 백준js
  • 백준 코테
  • msw 에러
  • react
  • 프로그래머스 코테
  • 백준 알고리즘
  • 프로그래머스 코딩테스트
  • JavaScript
  • 프로그래머스 js

최근 댓글

최근 글

hELLO · Designed By 정상우.
3jun
백준 JS | 11729번 하노이 탑 이동 순서
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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