ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ณต๋ถ€/C++

๋ฐฑ์ค€ 11047๋ฒˆ : ๋™์ „ 0 with C++

์—ฐ์ด14 2023. 4. 3. 22:32

๋ฌธ์ œ

์ค€๊ทœ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋™์ „์€ ์ด N์ข…๋ฅ˜์ด๊ณ , ๊ฐ๊ฐ์˜ ๋™์ „์„ ๋งค์šฐ ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

๋™์ „์„ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•ด์„œ ๊ทธ ๊ฐ€์น˜์˜ ํ•ฉ์„ K๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค. ์ด๋•Œ ํ•„์š”ํ•œ ๋™์ „ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000)

๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๋™์ „์˜ ๊ฐ€์น˜ Ai๊ฐ€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2์ธ ๊ฒฝ์šฐ์— Ai๋Š” Ai-1์˜ ๋ฐฐ์ˆ˜)

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— K์›์„ ๋งŒ๋“œ๋Š”๋ฐ ํ•„์š”ํ•œ ๋™์ „ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

ํ’€์ด๋ฐฉ๋ฒ•

1. ๋™์ „๊ฐ’์ด ํฐ ๋™์ „๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ K์›๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์€ ๋™์ „์„ ์ฐพ๋Š”๋‹ค.

2-1. ๋™์ „๊ฐ’๊ณผ K๊ฐ’์ด ๊ฐ™์„ ์‹œ ๋™์ „ ์ˆ˜๋ฅผ 1๊ฐœ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  K๋ฅผ 0์œผ๋กœ ๋งŒ๋“ ๋‹ค.

2-2. ๋™์ „๊ฐ’์ด K๊ฐ’๋ณด๋‹ค ์ž‘์„ ์‹œ K๊ฐ’์„ ๋™์ „๊ฐ’์œผ๋กœ ๋‚˜๋ˆด์„ ๋•Œ์˜ ๋ชซ๋งŒํผ ๋™์ „ ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  K๊ฐ’์— ๋‚˜๋จธ์ง€๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

3. K๊ฐ’์ด 0์ผ๋•Œ while๋ฌธ์„ ํƒˆ์ถœํ•˜๊ฒŒ ๋˜๊ณ  ๋™์ „๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

#include <iostream>
using namespace std;

int main() {
	int N, K;
	int coin[11];
	int count = 0;
	int num;

	cin >> N >> K;

	for (int i = 0; i < N; i++) 
	{
		cin >> coin[i];
	}

	while (K != 0) 
	{	// K๊ฐ’์ด 0์ด ๋‚˜์˜ฌ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต
		for (int i = N - 1; i >= 0; i--) 
		{
			if (coin[i] == K) 
			{	// ๋‚จ์€ ๊ฐ’๊ณผ ๋™์ „ ๊ฐ’์ด ๊ฐ™์„ ๋•Œ
				count++;
				K = 0;
			}
			else if (coin[i] < K) 
			{	// ๋‚จ์€ ๊ฐ’๋ณด๋‹ค ๋™์ „๊ฐ’์ด ์ž‘์„ ๋•Œ
				count += (int)(K / coin[i]);
				K = K % coin[i];
			}
		}
	}
	
	cout << count;

	return 0;
}