Dolphins의 HelloWorld

[백준]Baekjoon9461(Dynamic Programming) 본문

Algorithm/baekjoon문제풀이

[백준]Baekjoon9461(Dynamic Programming)

돌핀's 2018. 8. 7. 17:08

문제 링크 : https://www.acmicpc.net/problem/9461





정말 단순하게 규칙만 찾으면 풀 수 있는 문제이다.


길이가 memo배열에 할당시켰다고 했을 때


수를 쭉 나열해서 살펴보면 memo[i] = memo[i-1] + memo[i-5] 임을 알 수 있으며


이를 통해 memo[N]을 구하면 된다.



#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

long long memo[101];
int main()
{
	memo[1] = 1; memo[2] = 1; memo[3] = 1; 
	memo[4] = 2; memo[5] = 2;
	int T;	int N;
	scanf("%d", &T);
	while (T--) {
		scanf("%d", &N);
		for (int i = 6; i <= N; i++) {
			memo[i] = memo[i - 1] + memo[i - 5];
		}
		printf("%lld\n", memo[N]);
	}
}


'Algorithm > baekjoon문제풀이' 카테고리의 다른 글

[백준]Baekjoon10814(정렬)  (0) 2018.08.12
[백준]Baekjoon2751(정렬)  (0) 2018.08.11
[백준]Baekjoon1699(Dynamic Programming)  (0) 2018.08.07
[백준]Baekjoon2579(Dynamic Programming)  (0) 2018.08.06
[백준]Baekjoon1912  (0) 2018.08.06
Comments