출처: 백준 온라인저지
https://www.acmicpc.net/problem/17478
✅ 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
🔥 유사한 로직이지만 훨씬 간단한 알고리즘으로 구현된 예시
https://velog.io/@dlsgkrdl23/JavaScript-17478-%EB%B0%B1%EC%A4%80
'알고리즘' 카테고리의 다른 글
프로그래머스 JS | 실패율 (0) | 2022.06.27 |
---|---|
프로그래머스 JS | 모의고사 (완전탐색) (0) | 2022.06.25 |
백준 JS | 1929번 소수 구하기 (0) | 2022.06.13 |
백준 JS | 4948번 베르트랑 공준 (0) | 2022.06.10 |
백준 JS | 2775번 부녀회장이 될테야 (0) | 2022.05.26 |