사용한 것
- 1, 2, 3의 합으로 나타내는 방법의 수를 구하기 위한 bottom-up
풀이 방법
d
의 0 번째 인덱스에 1을 넣고 1, 2, 3의 합으로 나타내는 방법의 수를 구하기 위해 더해 나간다.
코드
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
for (int i = 0; i < N; i++) {
System.out.println(getNumberOfCases(arr[i]));
}
}
static int getNumberOfCases(int num) {
int[] d = new int[num + 1];
d[0] = 1;
for (int i = 1; i <= num; i++) {
d[i] += d[i - 1];
if (i >= 2) {
d[i] += d[i - 2];
}
if (i >= 3) {
d[i] += d[i - 3];
}
}
return d[num];
}
}