백준 문제/DP

[백준] 9461번 파도반 수열

dubu0721 2025. 2. 18. 19:55

문제: 9461번: 파도반 수열

basic-algo-lecture/workbook/0x10.md at master · encrypted-def/basic-algo-lecture

 

basic-algo-lecture/workbook/0x10.md at master · encrypted-def/basic-algo-lecture

바킹독의 실전 알고리즘 강의 자료. Contribute to encrypted-def/basic-algo-lecture development by creating an account on GitHub.

github.com

 

#include <bits/stdc++.h>

using namespace std;

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

	vector<long long> table(101); // 0번 인덱스는 안 써여
	table[1] = 1;
	table[2] = 1;
	table[3] = 1;
	for (int i = 4; i < 101; i++) {
		table[i] = table[i - 2] + table[i - 3];
	}

	int t;
	cin >> t;
	while (t-- > 0) {
		int n;
		cin >> n;

		cout << table[n] << "\n";
	}

	return 0;
}

 

규칙을 봤더니 table[i] 의 값은 table[i-2] + table[i-3] 값과 같았다. 테스트케이스 돌기 전에 미리 table 배열에 수열을 만들어 놓는다.

 

while 문에서는 n 의 값을 입력받고 table[n] 값을 출력하기만 하면 된다.