Coding 01

백준[1904]번 : 01타일 ( JAVA ) 본문

백준

백준[1904]번 : 01타일 ( JAVA )

하루우울루 2023. 7. 30. 01:16

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

 

1904번: 01타일

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

www.acmicpc.net


Code

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
	static int[] arr;
	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int t = Integer.parseInt(br.readLine());
		
		arr = new int[t];
		
		if(t == 1) { 
			arr[0] = 1;
		}
		else { // 1일 경우 arr[1]에 index오류가 난다
			arr[0] = 1;
			arr[1] = 2;
		}
		
		int ans = dp(t);
		
		bw.write(ans+" "); // 출력
		
		br.close();
		bw.close();
	}
	static int dp(int t) { // dp 배열 저장
		for(int i=2;i<t;i++) {
			arr[i] = (arr[i-1] + arr[i-2]) % 15746;
		}
		
		return arr[t-1];
	}
	
}

dp문제 몇 개 풀다 보니 쉽게 풀었다.

if(t == 1) {

arr[0] = 1;

}

else {

arr [0] = 1;

arr [1] = 2;

}

이 부분을 처리를 안 해줘서 틀렸었다.

조심해야겠다.