Coding Problem/DP

[BOJ 15989] 1, 2, 3 더하기 4

Yepchani 2024. 9. 5. 19:09
반응형

문제

1, 2, 3 더하기 4

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

 

 

풀이

설명

정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 문제입니다.

 

DP를 사용해 해결할 수 있습니다.

 

dp[i]는 i를 1, 2, 3의 합으로 나타내는 방법의 수입니다.

dp[0] = 1로 초기화 해줍니다.

 

1, 2, 3을 num으로 나타낸다면

dp[i] = dp[i] + dp[i - num]입니다.

 

예시 코드

function solution() {
  const T = +input();
  const n = 10000;
  const dp = Array(n + 1).fill(0);
  const answer = [];
  dp[0] = 1;

  for (let i = 1; i <= 3; i++) {
    for (let j = i; j <= n; j++) {
      dp[j] += dp[j - i];
    }
  }

  for (let i = 0; i < T; i++) {
    const num = +input();
    answer.push(dp[num]);
  }

  return answer.join("\n");
}

'Coding Problem > DP' 카테고리의 다른 글

[프로그래머스] 3 x n 타일링  (0) 2024.12.25
[프로그래머스] 가장 큰 정사각형 찾기  (0) 2024.11.23
[BOJ 1309] 동물원  (0) 2024.10.19
[BOJ 5582] 공통 부분 문자열  (0) 2023.12.13
BOJ 2225 합분해  (2) 2023.11.25