728x90
풀이
n자리 수를 알고 싶을때, 1을 뽑았을 경우 d[n - 1]의 경우의 수가 나온다.
00을 뽑았을 경우, d[ n - 2 ]의 경우의 수가 나온다. 이 두개를 합하면 끝!
import java.util.Scanner;
public class 타일 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int[] d = new int[1000001];
d[0] = 0; d[1] = 1; d[2] = 2;
for(int i = 3; i <= N; i++) {
d[i] = (d[i - 1] + d[i - 2]) % 15746;
}
System.out.println(d[N]);
scan.close();
}
}
처음에 나머지 계산을 막판 d[N] % 15746하니까 틀렸다고 나왔다.
계산하는 과정에서부터 나머지계산을 해줘야한다!
728x90
'CS > Algorithm' 카테고리의 다른 글
[ JAVA / 백준 : 14501 ] 퇴사 (0) | 2021.08.22 |
---|---|
[ JAVA / 백준 : 9461 ] 파도반 수열 (0) | 2021.08.22 |
[ JAVA / 백준 : 9095] 1, 2, 3 더하기 (0) | 2021.08.20 |
[ JAVA / 백준 : 2776 ] 암기왕 (0) | 2021.08.16 |
[ JAVA / 백준 : 2512] 예산 (0) | 2021.08.16 |