코딩테스트 연습 기록

이종길·2022년 3월 29일
0

코딩테스트 연습

목록 보기
122/128

2022.03.29 94일차

백준 9095번 (1, 2, 3 더하기)

문제

정수 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의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.

나의 풀이

  1. 경우의 수
    1 => 1
    2 => 2
    3 => 4
    4 => 7
    5 => 13
    6 => 24
    7 => 44
    ...
  2. n번째 값은 (n - 3) + (n - 2) + (n - 1)
import java.io.*;
import java.util.*;

public class Main {
    static int[] dp;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int T = Integer.parseInt(br.readLine());

        for (int i = 0; i < T; i++) {
            int n = Integer.parseInt(br.readLine());

            dp = new int[12];

            dp[1] = 1;
            dp[2] = 2;
            dp[3] = 4;

            for (int j = 4; j <= n; j++) {
                dp[j] = dp[j - 3] + dp[j - 2] + dp[j - 1];
            }
            System.out.println(dp[n]);
        }

    }
}

생각하기

profile
Go High

0개의 댓글

관련 채용 정보