๋ฐฑ์ค€ | Baekjoon

[๋ฐฑ์ค€][11047] ๋™์ „ 0 | ํŒŒ์ด์ฌ | ๊ทธ๋ฆฌ๋””(Greedy)

sungkshon 2024. 5. 23. 03:25
๋ฐ˜์‘ํ˜•

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

 

๐Ÿ‘‰ ๋ฌธ์ œ ๋ถ„์„

๋™์ „์˜ ์ข…๋ฅ˜๋Š” ์ด N์ข…๋ฅ˜(๊ฐ๊ฐ์˜ ๋™์ „์„ ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ์Œ).

์ ์ ˆํžˆ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์น˜์˜ ํ•ฉ์„ k๋กœ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.

์ด๋•Œ ํ•„์š”ํ•œ ๋™์ „ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’

 

๐Ÿ‘‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

  1. ๋™์ „์˜ ์ข…๋ฅ˜์™€ ๋งŒ๋“ค๊ณ ์žํ•˜๋Š” ํ•ฉ์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
  2. ๋™์ „์˜ ๊ฐ€์น˜๋“ค์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
  3. ๋™์ „์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋‹ด์•„์ค„ ๋ณ€์ˆ˜ ํ•˜๋‚˜๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ€์žฅ ํฐ ๊ฐ’์œผ๋กœ ๋‚˜๋ˆˆ ๋ชซ์„ ๊ทธ ๋ณ€์ˆ˜์— ๋‹ด์•„์ค€๋‹ค.
  4. ์ด๋ฅผ ๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ์ˆœ์œผ๋กœ ๋ฐ˜๋ณตํ•œ๋‹ค.
  5. ์ด๋•Œ ๋‚จ์€ ์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ์•ˆ์˜ ๊ฐ’์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ’์ด ๋œ๋‹ค.

๐Ÿ‘‰ ์ฝ”๋“œ

n, k = map(int, input().split())

money = []
for _ in range(n):
    money.append(int(input()))

money.reverse()  #  ๋‚ด๋ฆผ์ฐจ์ˆœ 

money_number = 0
for i in money:
    money_number += (k//i)  #  ๋ชซ(๋™์ „์˜ ๊ฐฏ์ˆ˜)์„ money_number์— ๋„ฃ์–ด์ค€๋‹ค
    k %= i  #  ๋‚˜๋จธ์ง€ ๋‚จ๊ฒจ์ค€๋‹ค
print(money_number)

 

๐Ÿ‘‰ ์‹œ๊ฐ„๋ณต์žก๋„

O(N)

 

 

 

๋ฐ˜์‘ํ˜•