less than 1 minute read

문제 풀이 방식

  • 아무리봐도 가방문제랑 비슷하고 DP여서 알고리즘을 보니 DP였다.
  • 점화식 : DP[n] = DP[n-1] + DP[n - 2] + DP[n - 3];

문제 풀이 (Java)

  • 처음에 효율성 문제 있었던 코드 :
import java.io.IOException;  
import java.util.*;  
public class boj9095 {  
  
    static int[] DP = new int[11];  
  
    public static void main(String[] args) throws IOException {  
        Scanner sc = new Scanner(System.in);  
        int T = sc.nextInt();  
  
        DP[1] = 1;  
        DP[2] = 2;  
        DP[3] = 4;  
  
        for(int i = 0 ; i < T ; i++){  
            int N = sc.nextInt();  
  
            for(int j = 4 ; j <= N ; j++){  
                DP[j] = DP[j - 1] + DP[j - 2] + DP[j - 3];  
            }  
  
            System.out.println(DP[N]);  
        }  
    }  
}

Leave a comment