# BOJ09095 1, 2, 3 더하기

https://www.acmicpc.net/problem/9095 (opens new window)

정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.

  • 1 + 1 + 1 + 1
  • 1 + 1 + 2
  • 1 + 2 + 1
  • 2 + 1 + 1
  • 2 + 2
  • 1 + 3
  • 3 + 1

정수 n이 주어질 때, n을 1, 2, 3의 합으로 나타낸다.

# 제출 코드

위 문제는 특정한 규칙을 따른다.

x = 1 이면 f(x) = 1
x = 2 이면 f(x) = 2
x = 3 이면 f(x) = 4
x가 4 이상이면 f(x) = f(x - 1) + f(x - 2) + f(x - 3)

아래는 최종 제출 코드이다.

import java.util.Scanner;

public class BOJ9095 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int[] dp = new int[11];
        int t = scanner.nextInt();

        for (int i = 1; i < dp.length; i++) {
            if (i == 1) {
                dp[i] = 1;
            } else if (i == 2) {
                dp[i] = 2;
            } else if (i == 3) {
                dp[i] = 4;
            } else {
                dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
            }
        }

        for (int i = 0; i < t; i++) {
            int n = scanner.nextInt();
            System.out.println(dp[n]);
        }
    }
}
#algorithm #BOJ #다이나믹 프로그래밍
last updated: 10/10/2021, 6:09:25 PM