백준 15988번 1, 2, 3 더하기 node js

2022. 12. 13. 00:23·CS/알고리즘

문제

https://www.acmicpc.net/problem/15988

 

 

풀이

 

n의 경우의 수를 구하기 위해 n보다 작은 값들의 경우를 저장해놓고 n의 경우의 수를 구할 수 있다. -> dp 문제

 

1. 반복되는 패턴에서 점화식을 세운다.

2. 점화식을 구현

 

5까지 경우의 수를 나열해보면 반복되는 패턴을 찾았고

dp[n] = dp[n-1] + dp[n-2] + dp[n-3] 점화식을 찾을 수 있다.

 

const input = require('fs').readFileSync('dev/stdin').toString().trim().split('\n').map(Number);

const T = input.shift();

const dp = new Array(T+1);
dp[1] = 1;
dp[2] = 2;
dp[3] = 4;

const num = Math.max(...input);

for(let i=4; i<=num; i++) {
    dp[i] = (dp[i-1] + dp[i-2] + dp[i-3]) % 1000000009;
    // dp[i] = dp[i-1] + dp[i-2] + dp[i-3];
}

input.map((v, i) => console.log(dp[input[i]]));
// input.map((v, i) => console.log(dp[input[i]] % 1000000009)); -> 이거는 오답처리됨.. 이유가..? 예외케이스가 있나?

 

 

'CS > 알고리즘' 카테고리의 다른 글

백준 1912번 연속합 node js  (0) 2022.12.04
백준 17478번 재귀함수가 뭔가요? javascript  (0) 2022.09.05
백준 10870번 피보나치 JS  (0) 2022.09.01
백준 10872번 nodeJS 팩토리얼  (0) 2022.08.31
'CS/알고리즘' 카테고리의 다른 글
  • 백준 1912번 연속합 node js
  • 백준 17478번 재귀함수가 뭔가요? javascript
  • 백준 10870번 피보나치 JS
  • 백준 10872번 nodeJS 팩토리얼
꿀표
꿀표
양봉업자
  • 꿀표
    꿀로그
    꿀표
  • 전체
    오늘
    어제
    • 분류 전체보기 (82)
      • 인디해커 (0)
      • AI (0)
      • 프론트엔드 (34)
        • Javascript (17)
        • React (9)
        • Git (2)
        • Web Env (4)
        • Typescript (1)
        • 웹접근성 (1)
        • 상태관리 (0)
      • CS (8)
        • Network (3)
        • 알고리즘 (5)
      • 글쓰기 (3)
        • 생각 (2)
        • 서적 (1)
      • JAVA (37)
        • JAVA 기초 (22)
        • JSP (15)
  • 블로그 메뉴

    • 방명록
  • 인기 글

  • 태그

    network
    그리디
    cross browsing
    javascript
    프로그래머스
    알고리즘
    구명보트
    greedy
    react
    js
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
꿀표
백준 15988번 1, 2, 3 더하기 node js
상단으로

티스토리툴바