No Rules Rules

파도반 수열 (feat. 백준, 9461번) 본문

생활/코테

파도반 수열 (feat. 백준, 9461번)

개발하는 완두콩 2022. 7. 28. 22:41
728x90
반응형

파도반 수열
https://www.acmicpc.net/problem/9461

 

9461번: 파도반 수열

오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의

www.acmicpc.net

반응형
// woohyeon.kim
// https://www.acmicpc.net/problem/9461
#include <iostream>
using namespace std;
int main() {
	ios::sync_with_stdio(false), cin.tie(), cout.tie();
	register int T;
	register long long arr[101] = { 0 };
	arr[1] = arr[2] = arr[3] = 1, arr[4] = arr[2] + arr[1];
	cin >> T;
	for (register int t = 0, N, n; t < T; ++t) {
		cin >> N;
		for (n = 5; n <= N; ++n)
			if (arr[n] == 0)			arr[n] = arr[n - 2] + arr[n - 3];
		cout << arr[N] << endl;
	}
	return 0;
}
// *&)*@*
  1. 문제의 지문과 같이 P(1) - P(10) = 1, 1, 1, 2, 2, 3, 4, 5, 7, 9 입니다.
  2. 즉, P(N) = P(N - 2) + P(N - 3) (단, N은 4 이상) 의 수식이 성립됩니다.
  3. 단, N의 값이 커질수록 합계 또한 integer 범위를 넘어가기 때문에 long long type으로 변경하였습니다.
728x90
반응형
Comments