반응형
레벨: 브론즈2 (solved.ac)
언어: JavaScript
문제설명
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.
이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다.
n=17일때 까지 피보나치 수를 써보면 다음과 같다.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597
n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오.
입력값
n : 0 ~ 20 의 자연수
출력값
n 번째 피보나치 수
📑풀이 과정
피보나치 수에 대한 풀이는 너무 유명하니 넘어간다 ㅎㅎ
아래에 동적프로그래밍과 피보나치에 대해 잘 설명된 블로그가 있어서 이걸로 대체하고자 한다.
동적프로그래밍 피보나치
📋풀이 코드
const fs = require("fs");
let input = fs.readFileSync("/dev/stdin");
solution(input);
function solution(N) {
let answer;
let fibo = [];
fibo[0] = 0;
fibo[1] = 1;
fibo[2] = 1;
if (N < 3) answer = fibo[N];
else {
for (let i = 2; i <= N; i++) {
fibo[i] = fibo[i - 2] + fibo[i - 1];
}
answer = fibo[N];
}
console.log(answer);
}
문제는 어렵지 않았으나 백준의 입력 값 코드에서 에러가 나와 많이 틀렸었다.
입력 값 받는 코드를 여러 줄 받는 것에서 한줄 받는 것으로 고치고 나니 정답이 나왔다.
오답: let input = fs.readFileSync("/dev/stdin").toString().split("\n");
정답: let input = fs.readFileSync("input.txt");
vscode에서는 둘다 잘 나왔지만 채점 싸이트에서는 머가 잘 못 되었는지 알 수 없지만 오답이 나온다.
반응형
'지난 글 모음' 카테고리의 다른 글
[javascript] - 표현식과 문, 리터럴 (1) | 2022.02.03 |
---|---|
[백준 node.js] 1010번 다리놓기 javascript (0) | 2022.02.02 |
[백준 node.js] 1032번 명령 프롬프트 JavaScript (0) | 2022.01.31 |
[백준-node.js] JavaScript 입력 - vsCode에서 풀기 (0) | 2022.01.30 |
[프로그래머스] LV1 다트게임 JavaScript (0) | 2022.01.29 |