백준 11047 c++

magicdrill·2024년 4월 1일

백준 문제풀이

목록 보기
242/673

백준 11047 c++

#include <iostream>

using namespace std;

int input(int lower, int upper)
{
	//cout << "input()" << endl;
	int A;

	while (1)
	{
		cin >> A;
		if (A >= lower && A <= upper)
		{
			break;
		}
		else
		{
			;
		}
	}

	return A;
}

void input_arr(int* A, int N)
{
	//cout << "input_arr()\n";
	int i, temp;

	A[0] = input(1, 1000000);
	for (i = 1; i < N; i++)
	{
		temp = input(1, 1000000);
		if (temp % A[i - 1] == 0 && temp > A[i-1])
		{
			A[i] = temp;
		}
		else
		{
			i--;
		}
	}

	return;
}

int find_result(int* A, int N, int K)
{
	//cout << "find_result()\n";
	int i;
	int count = 0;
	int temp;

	for (i = N - 1; i >= 0; i--)
	{
		temp = K / A[i];
		count = count + temp;
		K = K % A[i];
	}

	return count;
}

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

	int N, K;
	int* A;

	N = input(1, 10);
	K = input(1, 100000000);
	A = new int[N];
	input_arr(A, N);
	cout << find_result(A, N, K) << "\n";
	delete[] A;

	return 0;
}

0개의 댓글