백준 3301 c++ : DP

magicdrill·2024년 12월 20일
0

백준 문제풀이

목록 보기
512/654

백준 3301 c++ : DP

피보나치와 동일하다. 타일 사각형의 둘레 길이를 구하는 규칙을 찾아내야 한다.

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

long long find_answer(int N) {
	vector<long long> tile(N + 1, 0);
	long long length = 0;
	int i;

	tile[1] = 1;
	tile[2] = 1;

	//피보나치와 동일함
	for (i = 3; i <= N; i++) {
		tile[i] = tile[i - 1] + tile[i - 2];
	}

	//둘레 길이 = (현재 타일 길이 + (현재 타일 길이 + 이전 타일 길이)) * 2
	length = (tile[N] * 2 + tile[N - 1]) * 2;

	return length;
}

int main(void) {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	long long N;

	cin >> N;
	cout << find_answer(N) << "\n";
	
	return 0;
}

0개의 댓글