๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ฐฑ์ค€/๊ทธ๋ฆฌ๋””

๋ฐฑ์ค€ (Baekjoon Online Judge) ๊ทธ๋ฆฌ๋”” - 11047๋ฒˆ ๋™์ „

์•„์ด๋””์–ด 1: ์ž…๋ ฅ๋ฐ›์€ ํฐ ๋ˆ๋ถ€ํ„ฐ ๋นผ๋ด์•ผ๊ฒ ๋‹ค!

#์‹œ๊ฐ„์ดˆ๊ณผ ์ฝ”๋“œ ใ…œใ…œ
a = list(map(int,input().split())) #
coin = []
sum = 0
for i in range(a[0]):
  money = int(input())
  coin.append(money)
coin.reverse()
for i in coin:
  while a[1]>=i: #์ž…๋ ฅ๋ฐ›์€ b์›์ด i๋ณด๋‹ค ํฌ๋ฉด?
    a[1]=a[1]-i
    sum+=1

print(sum)

๋‹จ์ˆœํ•˜๊ฒŒ ๊ฐ€์žฅ ํฐ ๋ˆ์˜ ๋‹จ์œ„๋ถ€ํ„ฐ ๊ณ„์†ํ•ด์„œ ๋นผ๊ณ , ํ•œ๋ฒˆ ๋น ์งˆ ๋•Œ๋งˆ๋‹ค sum์— 1์”ฉ ๋”ํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, while ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉด์„œ ๊ต‰์žฅํžˆ ์‹œ๊ฐ„์ ์œผ๋กœ ํšจ์œจ์ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฐ ๋ฌธ์ œ์—์„œ ์ž˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชซ์„ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๊ตฌํ˜„ํ–ˆ๋‹ค.

#์„ฑ๊ณต!
a = list(map(int,input().split()))
coin = []
sum = 0
for i in range(a[0]):
  money = int(input())
  coin.append(money)

n = len(str(a[1])) #์ผ๋‹จ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
coin.reverse() #ํฐ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ณ 
for i in coin: #๋ฆฌ์ŠคํŠธ๋ฅผ ํ•œ๋ฒˆ์”ฉ ๋„๋Š”๋ฐ
  if i<=a[1]: #๋งŒ์•ฝ ๊ฐ€์žฅ ํฐ ์ž…๋ ฅ์ด K์›๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฉด?
    sum = sum+ a[1]//i #K์›์„ ์ฝ”์ธ์œผ๋กœ ๋‚˜๋ˆˆ ๋ชซ ๋งŒํผ sum์— ๋”ํ•ด์ฃผ๊ณ 
    a[1] = a[1] - i*(a[1]//i) #K์›์—์„œ ์ฝ”์ธ๋งŒํผ ๋นผ์ค€๋‹ค.

print(sum)

์ด๋ฒˆ ์ฝ”๋“œ๋Š” ์ž…๋ ฅ๋ฐ›์€ K์›์ด ๋ช‡์ž๋ฆฌ ์ˆซ์ž์ธ์ง€ ๊ตฌํ•œ ํ›„, ์ž…๋ ฅ๋ฐ›์€ ์›๋‹จ์œ„๋ฅผ ํฐ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ ํ›„ ์ด๋ฅผ ์ด์šฉํ•ด 

for๋ฌธ์„ ๋Œ๊ณ  ์žˆ๋Š” ์›๋‹จ์œ„๊ฐ€ ์ž…๋ ฅ๋ฐ›์€ K์›๋ณด๋‹ค ์ž‘๋‹ค๋ฉด K์›์„ ๋‹จ์œ„๋กœ ๋‚˜๋ˆˆ ๋ชซ ๋งŒํผ sum์— ๋”ํ•ด์ฃผ๊ณ  K์›์˜ ๊ฐ’์„ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.

 

๊ฒฐ๊ณผ๋Š” ์„ฑ๊ณต!

 

https://www.acmicpc.net/problem/11047

 

728x90