알고리즘
백준 JS | 17478번 재귀함수가 뭔가요?
3jun
2022. 6. 21. 22:15
출처: 백준 온라인저지
https://www.acmicpc.net/problem/17478
17478번: 재귀함수가 뭔가요?
평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대
www.acmicpc.net
✅ Solution
const input = require('fs').readFileSync('example.txt').toString().trim();
const question = [
'어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.',
'"재귀함수가 뭔가요?"',
'"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.',
'마을 사람들은 모두 그 선인에게 수많은 질문을 했고, 모두 지혜롭게 대답해 주었지.',
'그의 답은 대부분 옳았다고 하네. 그런데 어느 날, 그 선인에게 한 선비가 찾아와서 물었어."',
'"재귀함수는 자기 자신을 호출하는 함수라네"',
'라고 답변하였지.',
];
const num = parseInt(input);
const hyphen = '____';
let answer = '';
for (let i = 0; i <= num; i++) {
if (i === 0) {
answer += question[0] + '\n';
answer += question[1] + '\n';
answer += question[2] + '\n';
answer += question[3] + '\n';
answer += question[4] + '\n';
} else if (i === num) {
answer += hyphen.repeat(i) + question[1] + '\n';
answer += hyphen.repeat(i) + question[5] + '\n';
answer += hyphen.repeat(i) + question[6] + '\n';
} else {
answer += hyphen.repeat(i) + question[1] + '\n';
answer += hyphen.repeat(i) + question[2] + '\n';
answer += hyphen.repeat(i) + question[3] + '\n';
answer += hyphen.repeat(i) + question[4] + '\n';
}
if (i === num) {
for (let j = i - 1; j >= 0; j--) {
answer += hyphen.repeat(j) + question[6] + '\n';
}
}
}
console.log(answer);
1. 0 ~ input 값, input 값 ~ 0 까지 2번의 loop
2. loop 에 따라 하이픈이 변경되어야 한다.
3. 0 ~ input 값 - 1 까지의 문단, input 값 문단 그리고 input 값 ~ 0 까지의 문단을 분리한다.
👀 다른 사람의 답안
https://www.acmicpc.net/source/44772371
로그인
www.acmicpc.net
🔥 유사한 로직이지만 훨씬 간단한 알고리즘으로 구현된 예시
https://velog.io/@dlsgkrdl23/JavaScript-17478-%EB%B0%B1%EC%A4%80
[JavaScript] 17478 | 백준
재귀함수가 뭔가요?
velog.io