<< 문제 >>
https://www.acmicpc.net/problem/1904
1904번: 01타일
지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이
www.acmicpc.net
00과 1을 조합해서 만들어낼 수 있는 경우의 수를 알아내는 문제입니다.
사실 모든 경우의 수라서 백트래킹으로 생각할 수도 있지만 Dynamic Programming으로 해결해야 하는 문제입니다.
그런데 사실 피보나치 수열이라 굳이 DP로 하지 않아도 해결할 수 있습니다.
피보나치 수열인 것만 깨닫게 되면 크게 어렵지는 않았네요.
<< 코드 >>
#include <iostream>
using namespace std;
int main() {
int num;
cin >> num;
int* arr = new int[num+1];
arr[0] = 1;
arr[1] = 1;
for (int i = 2; i <= num; i++) {
arr[i] = (arr[i - 1] + arr[i - 2]) % 15746;
}
cout << arr[num];
delete[] arr;
}
<< 깃헙 >>
< 백준 BaekJoon : 1912번 연속합 > C++ (0) | 2024.01.28 |
---|---|
< 백준 BaekJoon : 9461번 파도반 수열 > C++ (0) | 2024.01.27 |
< 백준 BaekJoon : 9184번 신나는 함수 실행> C++ (0) | 2024.01.27 |
< 백준 BaekJoon : 14889번 스타트와 링크 > C++ (0) | 2024.01.26 |
< 백준 BaekJoon : 14888번 연산자 끼워넣기 > C++ (0) | 2024.01.25 |
댓글 영역