티스토리 뷰

https://www.acmicpc.net/problem/1904

 

1904번: 01타일

지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이

www.acmicpc.net

 

주의 : if( N >= 2 ) 조건을 달지 않고 그냥 반복문으로 하니 100%에서 런타임에러가 났는데 이유를 모르겠음.

 

문제는 간단한데

00이 붙여질 조건과 1이 붙여질 조건이다.

1이 붙여질 조건은 앞선 d[n-1]개에 그냥 붙이면 되고 00의 경우 d[n-2]의 경우에서 붙여주면된다.

 

=> d[n] = d[n - 1] + d[n - 2]

 

import java.util.Scanner;

public class Q1904 {
	static int N;
	static long dp[];
	
	public static void main(String[] args) {
		solve();
	}
	
	
	public static void solve() {
		input();
		dp();
	}
	
	public static void input() {
		Scanner sc = new Scanner(System.in);
		N = sc.nextInt();
		dp = new long[N + 1];
		sc.close();
	}
	
	
	public static void dp() {
		dp[0] = 1;
		dp[1] = 1;
		
		if(N >= 2) {
			for(int i = 2; i <= N; i++)
				dp[i] = (dp[i - 1] + dp[i - 2]) % 15746;
		}
			
		System.out.println(dp[N]);
	}
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함