반응형
문제
문제 설명
피보나치 수와 비슷한 규칙을 찾아 동적 계획법으로 푸는 문제
파도반 수열은 n에서 두번째 수와 세번째 수를 더하면 n의 값이 나오는 문제이다.
재귀로 풀면 시간 초과로 틀린다.
배열에 차곡차곡 담는 식으로 풀어야 한다.
초기값은 처음 3개의 값인 1로 두면 된다.
성공 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int i = 0; i < t; i++) {
int n = sc.nextInt();
System.out.println(padovan(n));
}
sc.close();
}
public static long padovan(int n) {
long[] sequence = new long[n+1];
for (int i = 1; i <= n; i++) {
sequence[i] = (i < 4)? 1 : sequence[i-2]+sequence[i-3];
}
return sequence[n];
}
}
반응형