문제
백준 13301번 타일장식물
13301번: 타일 장식물
대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개
www.acmicpc.net
코드
#include<iostream>
using namespace std;
long long pibo[85];
int N;
int main() {
pibo[1] = 1;
pibo[2] = 1;
cin >> N;
for (int i = 3; i <= N; i++) {
pibo[i] = pibo[i - 1] + pibo[i - 2];
}
cout << pibo[N] * 4 + pibo[N - 1] * 2;
}
풀이방법
각 타일의 한 변의 길이는 피보나치수열을 이루고, 직사각형의 둘레는 (n번째 타일의 한 변의 길이)*4 + (n-1번째 타일의 한 변의 길이)*2와 같다. 따라서 DP를 이용해 한 변의 길이를 순서대로 구하고, 그것을 기반으로 직사각형의 둘레를 출력해준다.
고민과정
long long을 쓰라고 나와있는데도 놓쳐서 int라고 했다가 틀렸다.
'algorithm > Dynamic Programming' 카테고리의 다른 글
[C++] BOJ 11048 이동하기 (0) | 2021.08.07 |
---|---|
[C++] BOJ 1010 다리 놓기 (0) | 2021.05.01 |
[C++] BOJ 9625 RIJEČI (BABBA) (0) | 2021.05.01 |
[C++] BOJ 10870 피보나치 수 5 (0) | 2021.05.01 |
[C++] BOJ 2748 (0) | 2021.03.27 |