📌 문제 링크
https://acmicpc.net/problem/2747
📌 문제 탐색하기
- 입력값의 피보나치 수를 출력하시오
시간복잡도
- O(n)
알고리즘 선택
- DP
📌 코드 설계하기
- 문제의 `input`을 숫자로 변환합니다.
- `input`의 값이 2보다 작을 때는 `input`을 출력합니다.
- `arr` 배열을 선언하고 `0, 1`의 값을 미리 넣어줍니다.
- 문제 참조) 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다.
- `sum`을 초기화합니다.
- `input`까지 반복문을 돌며 피보나치 수를 구하여 출력합니다.
📌 시도 회차 수정 사항 (Optional)
1회차
- `input`의 값이 0과 1일 경우를 `arr` 배열에 넣어줬다고 출력할 때도 알아서 나올 것이라고 착각해서 틀렸다.
📌 정답 코드
//https://acmicpc.net/problem/2747
export {};
const fs = require("fs");
const filePath =
process.platform === "linux" ? "/dev/stdin" : __dirname + "/input1.txt";
const input = Number(fs.readFileSync(filePath).toString().trim().split("\n"));
if (input < 2) {
console.log(input);
} else {
const arr = [0, 1];
let sum = 0;
for (let i = 2; i <= input; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
if (i === input) sum = arr[i];
}
console.log(sum);
}
'코딩 > 알고리즘' 카테고리의 다른 글
백준) 1920 - 수 찾기 JS (0) | 2024.11.23 |
---|---|
백준) 1904 - 01타일 JS (0) | 2024.11.22 |
백준) 10815 - 숫자 카드 JS (0) | 2024.11.20 |
백준) 7785 - 회사에 있는 사람 JS (0) | 2024.11.19 |
백준) 28279 - 덱 2 JS (1) | 2024.11.18 |