Algorithm/JS
[알고리즘_Node.js_재귀] 백준 17478번 재귀함수가 뭔가요?
Cune
2022. 8. 25. 21:29
<풀이 방법>
const input = require("fs").readFileSync("/dev/stdin").toString();
const n = Number(input);
// 최초 1번 나오는 문장
console.log("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.");
function chatBot(line, n) {
// n번만큼 공통 반복 문장
console.log(`${line}"재귀함수가 뭔가요?"`);
if (n == 0) { // 재귀 마지막 도달시 나오는 문장
console.log(`${line}"재귀함수는 자기 자신을 호출하는 함수라네"`);
console.log(`${line}라고 답변하였지.`); // n+1번 나오기때문에 마지막 도착점에서 한번 출력
return // 재귀로 돌아감
}
console.log(`${line}"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.`);
console.log(`${line}마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.`);
console.log(`${line}그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."`);
chatBot(line+"____", n-1); // n-1로 줄어들면서 계단식 반복
console.log(`${line}라고 답변하였지.`); // 재귀 마지막 도달하고나서 돌아오는 곳
}
chatBot("", n); // 재귀 함수 실행
n==0 일때 return 하면서 마지막에 "~라고 답변하였지." 를 반복하는 부분에서 헷갈려서 많이 삽질했다...