백준 11729번 하노이의 탑-JS
하 진짜 머리터지겠네
- 제출한 코드
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('\n');
//9:52
let N = Number(input[0]);
let K = 0;
let answer = '';
// 원반 갯수, 출발지 기둥, 목적지 기둥, 나머지 기둥
function hanoi(num, from, to, other) {
if(num === 0) {
return;}
hanoi(num-1, from, other, to);
// console.log(`${from} ${to}`);
answer += `${from} ${to}` + '\n';
K++;
hanoi(num-1, other, to, from);
}
hanoi(N,1,3,2)
console.log(K);
console.log(answer);
알듯말듯 이수준이 아니라 죽어도 재귀로 못풀겠다는 빠른 판단 후 유튜브에 하노이의 탑 설명한 거 보고 만듬.
참고영상
하 진짜 선언적 프로그래밍? 하하 뭐죠그게?
정의와 목적 그에 필요한 요소들만 적어주면 컴퓨터가 알아서 후루룩 하는거라고 했다.
이 풀이를 설명하자면
원반의 갯수가 0이되면 그만 두는 것이다.(옮겨야 할 걸 다옮겼다는 뜻이니)
원반 갯수, 출발지 기둥의 번호, 목적지 기둥의 번호, 나머지 기둥의 번호 이렇게를 매개변수로 갖는다.
첫번째 함수 hanoi를 실행시키는 것은 무슨말이냐
1. 원반의 갯수-1개의 원반을 from에서 other로 옮기고 그 밑에 제일 큰 거를 from에서 to로 옮긴다.
2. 위치가 이동된 제일 큰 원반 위에 원반의 갯수-1개들을 그 위로 쌓는다. 이과정 반복
Author And Source
이 문제에 관하여(백준 11729번 하노이의 탑-JS), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yoosk5485/백준-11729번-하노이의-탑-JS저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)