728x90
https://www.acmicpc.net/problem/9461
● 문제
일반적인 dp문제이다. 문제에서 주어진 첫 10개의 숫자 1, 1, 1, 2, 2, 3, 4, 5, 7, 9, ... 을 보면 dp[N] = dp[N - 3] + dp[N - 2]라는 공식이 나오게 된다.
다만 파도반 수열은 100의 경우 900억이 넘기 때문에 long형태로 배열에 저장해야한다.
● 코드
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for(int i = 0; i < T; i++) {
int N = Integer.parseInt(br.readLine());
long[] dp = new long[1001];
dp[0] = 1;
dp[1] = 1;
dp[2] = 1;
for(int j = 3; j <= N; j++) {
dp[j] = dp[j - 3] + dp[j - 2];
}
System.out.println(dp[N - 1]);
}
}
}
728x90
'Study > BaekJoon' 카테고리의 다른 글
[백준 자바JAVA] 18258번 - 큐 2 (1) | 2024.07.22 |
---|---|
[백준 자바JAVA] 11727번 - 2xn 타일링 2 (0) | 2024.07.19 |
[백준 자바JAVA] 2579번 - 계단 오르기 (0) | 2024.07.17 |
[백준 자바JAVA] 11726번 - 2xn 타일링 (0) | 2024.07.16 |
[백준 자바JAVA] 1003번 - 피보나치 함수 (0) | 2024.07.15 |