CS/Algorithm

[ JAVA / 백준 : 1904 ] 01타일

yujindonut 2021. 8. 22. 01:35
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