728x90
import java.util.Scanner;
public class BJ9461 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt(); //테스트수 입력
long[] pado = new long[101]; //n이 1까지므로.
pado[1] = 1;
pado[2] = 1;
pado[3] = 1;
for(int i=4; i<101; i++){
pado[i] = pado[i-2] + pado[i-3];
}
for(int i=0; i<T; i++) {
int N = sc.nextInt();
System.out.println(pado[N]);
}
sc.close();
}
}
고등학교때 풀던 점화식이 생각나는 문제다.
규칙성을 찾아보면 P(n) = P(n-2) + P(n-3)이 나오게 되었다.
그걸 기반으로 사전 입력을 통해 O(1) 시간 복잡도를 만들었다.
하지만 처음에 pado 를 Integer 배열로 만들었다. 하지만 계속 worng answer이 나왔지만 이유를 알 지 못했다. 그래서 배열의 크기가 문제인건가 하고 long으로 바꾸어 보았더니 성공하였다. 이래서 오답률이 꽤나 나왔나보다.
728x90
'백준' 카테고리의 다른 글
백준 1260 - Java (2) | 2024.10.20 |
---|---|
백준 17626 - Java (0) | 2024.10.19 |
백준 11659 - Java (0) | 2024.10.18 |
백준 2606 - Java (0) | 2024.10.18 |
백준 11286 - Java (0) | 2024.10.17 |