๋ฐฑ์ค 11047๋ฒ : ๋์ 0 with C++
๋ฌธ์
์ค๊ท๊ฐ ๊ฐ์ง๊ณ ์๋ ๋์ ์ ์ด 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;
}