본문 바로가기

코딩/알고리즘

백준) 2747 - 피보나치 수 JS

📌 문제 링크

https://acmicpc.net/problem/2747


📌 문제 탐색하기

  • 입력값의 피보나치 수를 출력하시오

시간복잡도

  • O(n)

알고리즘 선택

  • DP

📌 코드 설계하기

  1. 문제의 `input`을 숫자로 변환합니다.
  2. `input`의 값이 2보다 작을 때는 `input`을 출력합니다.
  3. `arr` 배열을 선언하고 `0, 1`의 값을 미리 넣어줍니다.
    1. 문제 참조) 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다.
  4. `sum`을 초기화합니다.
  5. `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