본문으로 바로가기

9461 파도반 수열

category ps/다이나믹 프로그래밍 2021. 7. 18. 23:43

파도반 수열 9461

 

풀이코드

#include <iostream>
#include <cstdio>
#include <vector>
#include <cstring>
#include <cmath>
using namespace std;
// 9461 파도반 수열

const int MAX = 100;

int main(){
	int n, T;
	cin >> T;
	cin.ignore();
	unsigned long long seq[MAX + 1] = {1,1,1,2,2,3,4,5};

	while(T--){
		cin >> n;
		cin.ignore();
		for(int i = 8; i < n; i++){
			seq[i] = seq[i - 2] + seq[i - 3];
		}
		
		cout << seq[n - 1] << endl;
		
	}
	
}

 

해설


풀이

나열해서 간단한 점화식을 찾는 문제였다. $$a_n = a_{n-2} + a_{n-3} $$

아쉬웠던 부분 / 오답 원인 / 개선해야 할 점

N 의 한계가 100 이므로 int 의 값을 훌쩍 뛰어넘을 수 있을거란 점을 간과하였다. 계산하는 배열의 값을 unsigned long long 으로 재선언하여 해결하엿다.

반응형

'ps > 다이나믹 프로그래밍' 카테고리의 다른 글

1748 수 이어 쓰기 1  (0) 2021.08.22
2225 합분해  (0) 2021.07.23
1699 제곱수의 합  (0) 2021.07.18
2579 계단 오르기  (0) 2021.07.18
1912 연속합  (0) 2021.07.18