C++/백준 C++

[C/C++] 백준 9095번 1, 2, 3 더하기 - 참고

CE : 하랑 2023. 11. 24. 22:59

 

 

 

 

 

코드

#include <iostream>

using namespace std;

int cnt = 0; // 전역 변수  -> n을 1, 2, 3의 합으로 나타내는 방법의 수

void DFS(int sum, int test) {

	if (sum == test) { // 1,2,3의 합이 test 값과 같아지는 경우 방법의 수 증가 
		cnt++;
		return;
	}

	if (sum > test) { // 1,2,3의 합이 test값보다 커지는 경우
		return;
	}

	for (int i = 1; i <= 3; i++) {
		DFS(sum + i, test); // 모든 1,2,3의 합의 조합 체크
	}
}

int main()
{
	cin.tie(0); // 코드를 작성하면 입출력 속도가 빨라진다. -> C와 C++ 표준 stream의 동기화를 비활성화
	cout.tie(0); // C++의 입출력인 cin, cout만 사용하도록 주의해야합니다.

	int n; 

	cin >> n;

	for (int i = 0; i < n; i++) {
		int T;
		cin >> T;
		DFS(0, T);
		cout << cnt << "\n";
		cnt = 0;
	}

	return 0;
}