[BAEKJOON] - 9095번 : 1,2,3 더하기

Kim Hyen Su·2024년 1월 24일
0

⏲️ 알고리즘

목록 보기
48/95

9095번 문제 링크

위 문제는 수의 나열인 만큼 해당 조건에 맞는 점화식을 작성할 수 있는지를 물어보는 것 같다.

1,2,3의 합으로만 주어진 1이상 10이하의 n을 나타낼 수 있도록 구현해야 한다.

규칙을 찾아보면,

위처럼, 1, 2, 3으로 더해야 한다는 조건을 뺀 수의 더하기 횟수의 합들과 같게 된다.

위와 같은 규칙에 따라 점화식을 세우면 아래와 같다

😀 성공

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main{
    public static void main(String[] args)throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int T = Integer.parseInt(br.readLine());
        
        int[] dp = new int[11];
            dp[1] = 1;
            dp[2] = 2;
            dp[3] = 4;
            
        for(int i = 4; i < 11; i++){
            dp[i] = dp[i-1] + dp[i-2] + dp[i-3];
        }
        
        while(T-- > 0){
            int n = Integer.parseInt(br.readLine());
            sb.append(dp[n]).append("\n");
        }
        
        br.close();
        System.out.println(sb);
    }   
}
profile
백엔드 서버 엔지니어

0개의 댓글