본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

백준알고리즘


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


기저 사례를 잘 정해야 한다.

dp[0]에 1의 값을 넣어주고

i의 값이 1, 2, 3을 뺐을 때 이전의 값을 더해 계산을 하게 된다.

for문안에 if문에 주의하여 보자.


import java.util.Scanner;

public class Test {
    public static int[] memoArray;
    public static int count;
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in); 
        count = Integer.parseInt(scan.nextLine().trim());
        
        
        while(count-- > 0) {
            int calculateData = Integer.parseInt(scan.nextLine().trim());
            memoArray = new int[calculateData + 1];
            
            for(int i = 1; i < memoArray.length; i++) {
                memoArray[i] = 0;
            }
            memoArray[0] = 1;
            calculate(calculateData);
        }
    }
    
    public static void calculate(int count) {
        for(int i = 1; i < memoArray.length; i++) {
            if(i - 1 >= 0) {
                memoArray[i] += memoArray[i - 1];
            }
            
            if(i - 2 >= 0) {
                memoArray[i] += memoArray[i - 2];
            }
            
            if(i - 3 >= 0) {
                memoArray[i] += memoArray[i - 3];
            }
        }
        
        System.out.println(memoArray[count]);
    }
}