CS/알고리즘_문제풀이(자바)

1, 2, 3 더하기 3

Jedy_Kim 2021. 9. 24. 14:29
728x90

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

 

15988번: 1, 2, 3 더하기 3

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다.

www.acmicpc.net

// 자바

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.util.*;
import java.io.*;
 
public class Main{
  
  public static void main(String[] args) throws Exception {
    
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  
    StringTokenizer st = new StringTokenizer(br.readLine());
    
    int n = Integer.parseInt(st.nextToken());
     
    for(int i=0; i<n; i++) {
      st = new StringTokenizer(br.readLine());
      int k = Integer.parseInt(st.nextToken());
      if(k==1) {
        bw.write(String.valueOf(1));
      } else if(k==2) {
        bw.write(String.valueOf(2));
      } else if(k==3) {
        bw.write(String.valueOf(4));
      } else {
        long[]dp = new long[k+1];
        dp[0= 0;
        dp[1= 1;
        dp[2= 2;
        dp[3= 4;
        for(int j=4; j<k+1; j++) {
          dp[j] = (dp[j-1+ dp[j-2+ dp[j-3])%1000000009;
        }
        bw.write(String.valueOf(dp[k]));
      }
      bw.newLine();
      bw.flush();
    } 
    br.close();
    bw.flush();
    bw.close();
  }
  
}
cs

 

반응형

'CS > 알고리즘_문제풀이(자바)' 카테고리의 다른 글

골드바흐의 추측  (0) 2021.09.27
수 정렬하기 2  (0) 2021.09.24
2×n 타일링 2  (0) 2021.09.24
이분 그래프  (0) 2021.09.23
연결 요소의 개수  (0) 2021.09.23