[BOJ] 1904번 : 01타일

2024. 10. 1. 07:15Algorithm

1. problem : 

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

 

2. solution 1:

#include <bits/stdc++.h>
using namespace std;
const int mod = 15746; 
int n; 
int d[1000005]; 

int main(void) {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin >> n; 
	d[1] = 1, d[2] = 2;
	for (int i = 3; i <= n; i++) d[i] = (d[i - 1] % mod + d[i - 2] % mod) % mod; 
	cout << d[n];
}

dp를 이용해 풀었다. 따라서, 세가지 스텝을 따른다. 

1. 테이블을 정의한다. d[i] = i자리를 만드는데 필요한 경우의 수

2. 점화식을 작성한다. d[i] = d[i-1] + d[i-2] 

3. 초기값을 설정한다. d[1] = 1, d[2] = 2 

 

'Algorithm' 카테고리의 다른 글

[BOJ] 1788번 : 피보나치 수의 확장  (1) 2024.10.01
[BOJ] 1193번 : 분수찾기  (0) 2024.10.01
[BOJ] 2293번 : 동전 1  (0) 2024.09.30
[BOJ] 2960번 : 에라토스테네스의 체  (1) 2024.09.30
[BOJ] 11057번 : 오르막 수  (1) 2024.09.29