본문 바로가기
백준 코딩테스트/실버

9461) 파도반 수열 (C++)

by xortl98 2022. 4. 20.
728x90

 출처 

https://www.acmicpc.net/problem/9461

 

9461번: 파도반 수열

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

www.acmicpc.net

 내 풀이 

 

#include<iostream>

using namespace std;

long long N[101];	//파도반 수열 
int T = 0; //테스트 케이스
int P = 0; //테스트 케이스안에 입력받을 파도반 수열 N[P]

int main()
{
	N[1] = 1;
	N[2] = 1;
	N[3] = 1;

	//파도반 수열을 확인해보면 N[i] = N[i - 2] + N[i - 3] 이 성립함 
	for (int i = 4; i < size(N); i++)
	{
		N[i] = N[i - 2] + N[i - 3];
	}

	cin >> T;

	for (int i = 0; i < T; i++)
	{
		cin >> P;
		cout << N[P] << endl;
	}
}

 해설

파도반 수열의 패턴을 파악하면 쉽게 풀 수 있던 문제였다.

패턴은 N[i] = N[i-2] + N[i-3]이 성립했기에 이를 참고하여 미리 값을 저장시켜주고 답을 출력해주었다.

 새로 안 것 

항상 자료형 크기 주의하기 

 

'백준 코딩테스트 > 실버' 카테고리의 다른 글

1149) RGB거리 (C++)  (0) 2022.04.22
11047) 동전 0 (C++)  (0) 2022.04.20
1904) 01타일 (C++)  (0) 2022.04.19
2667) 단지번호붙이기 (C++)  (0) 2022.04.19
9184) 신나는 함수 실행 (C++)  (0) 2022.04.18