백준 9095 c

magicdrill·2024년 3월 21일

백준 문제풀이

목록 보기
187/673

백준 9095 c

#include <stdio.h>
#include <stdlib.h>
#pragma warning (disable:4996)

int input(int lower, int upper)
{
	int A;

	while (1)
	{
		scanf("%d", &A);
		if (A >= lower && A <= upper)
		{
			break;
		}
		else
		{
			;
		}
	}

	return A;
}

void input_arr(int* arr, int n)
{
	int i;

	for (i = 0; i < n; i++)
	{
		arr[i] = input(1, 11);
	}

	return;
}

int DP(int num)
{
	int i;
	int dp[12] = { 0, 1, 2, 4, };

	if (num < 4)
	{
		return dp[num];
	}
	else
	{
		for (i = 4; i <= num; i++)
		{
			dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
		}
		return dp[num];
	}
}

void find_result(int* arr, int T)
{
	int i;

	for (i = 0; i < T; i++)
	{
		printf("%d\n", DP(arr[i]));
	}

	return;
}

int main(void)
{
	int T, n;
	int *arr;

	T = input(1, 2000000000);
	arr = (int*)malloc(sizeof(int) * T);
	input_arr(arr, T);
	find_result(arr, T);

	free(arr);

	return 0;
}

0개의 댓글