sm 기술 블로그
70. 11729(하노이탑 이동 순서) 본문
let input = require("fs").readFileSync("ex.txt").toString().split(" ");
N = parseInt(input[0]);
let result = "";
const Hanoi = (A, B, C, N) => {
if (N === 1) {
result += A + " " + C + "\n";
return;
}
Hanoi(A, C, B, N - 1);
result += A + " " + C + "\n";
Hanoi(B, A, C, N - 1);
};
console.log(2 ** N - 1);
Hanoi(1, 2, 3, N);
console.log(result);
console.log를 이용하면 느려 시간초과가 발생한다.
따라서 result에 받아서 한번에 출력하는 방식을 채택하였다.
자세한 로직은 아래를 참고하자.
https://smhope.tistory.com/194
74. 11729(하노이 탑 이동 순서)
N = int(input()) def Hanoi(A, B, C, N): # A:1 B:2 C:3 if N == 1: print("{0} {1}".format(A, C)) # 처음 print라고 정의함 return Hanoi(A, C, B, N-1) print("{0} {1}".format(A, C)) # 마지막 print 라고 정..
smhope.tistory.com
'문제 > 백준_자바스크립트' 카테고리의 다른 글
72. 2231(분해합) (0) | 2022.06.09 |
---|---|
71. 2798(블랙잭) (0) | 2022.06.09 |
69. 2447 (별 찍기 -10) (0) | 2022.06.08 |
68. 17478 (재귀함수가 뭔가요?) (0) | 2022.06.06 |
67. 10870(피보나치수열) (0) | 2022.06.06 |
Comments