๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋?
"๋งค ์ ํ์์ ์ง๊ธ ์ด ์๊ฐ ๋น์ฅ ์ต์ ์ธ ๋ต์ ์ ํํ์ฌ ์ ํฉํ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ์"๋ผ๋ ๋ชจํ ๋ฅผ ๊ฐ์ง๋ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ์ด๋ค.
๊ฑฐ์ค๋ฆ๋์ ๋๋ ค์ฃผ๋ ๋ฌธ์ ๋ฅผ ์๊ฐํด๋ณด์.
์ฐ๋ฆฌ๋ ๋๋ถ๋ถ ๊ฑฐ์ค๋ฆ๋์ ๋๋ ค์ค๋ ํฐ ๋จ์์ ๋์ ๋ถํฐ ๊ฑฐ์ฌ๋ฌ์ค๋ค.
ex ) 500์์ ๋๋ ค์ค์ผ ํ๋ค๋ฉด, 100์์ 5๊ฐ ์ฃผ๋ ๊ฒ๋ณด๋ค 500์์ 1๊ฐ ์ฃผ๋ ํธ์ด ๋ ํธํ๋ค.
ํ์ง๋ง ๋ง์ฝ์ ๋์ ์ ๋จ์๊ฐ 100, 250, 300 ์ด๋ผ๋ฉด, (300 * 1) + (100 * 2) ๋ก 3๊ฐ๋ก ๊ฑฐ์ฌ๋ฌ์ฃผ๋ ๊ฒ๋ณด๋ค๋ 250 * 2 ์ ๋ฐฉ๋ฒ์ผ๋ก 2๊ฐ๋ก ๊ฑฐ์ฌ๋ฌ์ฃผ๋ ๊ฒ์ด ๋ ์ต์ ์ ๋ฐฉ๋ฒ์ด๋ค.
๋ฐ๋ผ์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ํญ์ ์ต์ ์ ํด๋ฅผ ์ ๊ณตํด์ฃผ๋ ๊ฒ์ ์๋๋ค.
ํ์ง๋ง ๋ง์ฝ ์ด ์ํฉ์์ ํฐ ๋จ์์ ์๋ถํฐ ๊ฑฐ์ฌ๋ฌ์ค์ผํ๋ ์กฐ๊ฑด์ด ์กด์ฌํ ๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์ต์ ์ ํด๋ฅผ ์ ๊ณตํด ์ค ์ ์๋ค.
๋ฌธ์
์ค๊ท๊ฐ ๊ฐ์ง๊ณ ์๋ ๋์ ์ ์ด 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์์ ๋ง๋๋๋ฐ ํ์ํ ๋์ ๊ฐ์์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
โ ์์ ์ค๋ช
์ด 10๊ฐ์ ๋์ ๋จ์๊ฐ ์ฃผ์ด์ง๊ณ , 4200์์ ๊ฑฐ์ฌ๋ฌ์ค์ผํ ๋ ํ์ํ ์ต์์ ๋์ ๊ฐ์๋?
( 1000 * 4 ) + ( 100 * 2 ) -> ์ด 6๊ฐ ์ด๋ค.
๐ ์๊ณ ๋ฆฌ์ฆ ์ค๋ช
ํฐ ์๋ถํฐ k๊ฐ๊ณผ ๋น๊ตํ๋ค.
๋ง์ฝ ๋์ ์ ๋จ์๊ฐ k ๋ณด๋ค ์๋ค๋ฉด k๋ฅผ ๋จ์๊ฐ์ผ๋ก ๋๋ ๋ชซ์ ์ซ์๋ฅผ count์ ์ถ๊ฐํ๋ค.
k๊ฐ์ ๊ทธ ๋์ ์ ๋จ์๋ก ๋๋ ๋๋จธ์ง ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๋ค.
๋ฐ๋ณตํ๊ณ , k๊ฐ์ด 0์ด ๋๋ฉด count๊ฐ์ return ํ๋ค.
๐ ์ฝ๋
import sys
def count_coin(L, k):
count = 0
for i in range(len(L)):
if k == 0: break
com = L.pop()
if com <= k:
count += k//com
k %= com
return count
N, K = map(int, sys.stdin.readline().split())
L = [int(sys.stdin.readline()) for i in range(N)]
print(count_coin(L,K))