https://www.acmicpc.net/problem/15989
풀이
1만 써서 나타내는 방법은 1가지씩 가지고 있으므로 dp배열을 1로 초기화한다.
2가 추가되기 위해서는 i-2를 나타내는 방법들의 뒤에 2를 붙이면된다.
반복문을 통헤 `dp[i] += dp[i - 2]` 를 적용해준다.
마찬가지로 3을 추가하려면 i-3을 나타내는 방법에 3을 붙이면 된다.
`dp[i] += dp[i - 3]` 을 적용한다.
메모리: 14304KB
시간: 132ms
언어: Java 11
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
int[] arr = new int[T];
int max = 0;
for (int i = 0; i < T; i++) {
arr[i] = Integer.parseInt(br.readLine());
max = Math.max(max, arr[i]);
}
int[] dp = new int[max + 1];
Arrays.fill(dp, 1);
for (int i = 2; i < max + 1; i++) {
dp[i] += dp[i - 2];
}
for (int i = 3; i < max + 1; i++) {
dp[i] += dp[i - 3];
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < T; i++) {
sb.append(dp[arr[i]]).append("\n");
}
System.out.println(sb);
}
}
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 22251: 빌런 호석 - JAVA (1) | 2024.05.17 |
---|---|
[백준] 2075: 스카이라인 쉬운거 - JAVA (0) | 2024.05.17 |
[백준] 2668: 숫자고르기 - JAVA (0) | 2024.05.17 |
[백준] 20922: 겹치는 건 싫어 - JAVA (0) | 2024.05.17 |
[백준] 2075: N번째 큰 수 - JAVA (0) | 2024.05.17 |
[백준] 11501: 주식 - JAVA (0) | 2024.05.17 |