[BOJ 1904] 01타일 (Java)
문제
https://www.acmicpc.net/problem/1904
1904번: 01타일
지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이
www.acmicpc.net
풀이
타일을 0과1로 표현했을 뿐이지 아래와 동일한 문제이다.
dp[1] = 1
dp[2] = 2
dp[3]부터는 아래 점화식을 따른다.
dp[i] = dp[i-1]+ dp[i-2]
2021.10.29 - [Problem Solving/Programmers] - [프로그래머스] 2 x n 타일링 (Java)
[프로그래머스] 2 x n 타일링 (Java)
문제 https://programmers.co.kr/learn/courses/30/lessons/12900 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길..
gom20.tistory.com
2021.10.29 - [Problem Solving/Programmers] - [프로그래머스] 멀리 뛰기 (Java)
[프로그래머스] 멀리 뛰기 (Java)
문제 https://programmers.co.kr/learn/courses/30/lessons/12914# 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때..
gom20.tistory.com
소스코드
package dp;
import java.util.Scanner;
public class BOJ1904 {
public static void main(String[] args) {
// N = 1, 1
// N = 2, 00, 11
// N = 3, 100, 001, 111
// N = 4, 1001, 0011, 1111, 0000, 1100
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] rs = new int[n+1];
for(int i = 1; i <= n; i++){
if(i == 1){
rs[i] = 1;
continue;
}
if(i == 2) {
rs[i] = 2;
continue;
}
rs[i] = (rs[i-1] + rs[i-2])%15746;
}
System.out.println(rs[n]);
}
}