-
[Python] ๋ฐฑ์ค - 11047 ๋์ 0 (Greedy)๐ป Algorithm/Python 2021. 10. 3. 17:35
๐ ์ฒซ ๋ฒ์งธ ์๋ (์๊ฐ์ด๊ณผ)
- k๊ฐ๋ณด๋ค ํฐ ๋์ ๊ฐ์ ์ญ์ ํ๊ณ ๋์ ๊ฐ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
- while๋ฌธ์ ๋๋ฉด์ ๋์ ๊ฐ ํ๋์ฉ ๋นผ ์ค
n, k = map(int, input().split()) coin = [int(input()) for _ in range(n)] coin = list(filter(lambda x: x <= k, coin)) coin.reverse() cnt = 0 for i in coin: while k - i >= 0: k -= i cnt += 1 if k == 0: break print(cnt)
โ ๋ ๋ฒ์งธ ์๋ (์ฑ๊ณต)
- k๊ฐ๋ณด๋ค ํฐ ๋์ ๊ฐ์ ์ญ์ ํ๊ณ ๋์ ๊ฐ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
- k๋ฅผ ๋์ ๊ฐ์ผ๋ก ๋๋ ๋ชซ์ cnt์ ๋ํด์ ์นด์ดํ
n, k = map(int, input().split()) coin = [int(input()) for _ in range(n)] coin = list(filter(lambda x: x <= k, coin)) coin.reverse() cnt = 0 for i in coin: if k // i > 0: cnt += k//i k -= i*(k//i) if k == 0: break print(cnt)
๋ฌธ์
์ค๊ท๊ฐ ๊ฐ์ง๊ณ ์๋ ๋์ ์ ์ด 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
10 4200
1
5
10
50
100
500
1000
5000
10000
50000
์์ ์ถ๋ ฅ 1
6
์์ ์ ๋ ฅ 2
10 4790
1
5
10
50
100
500
1000
5000
10000
50000
์์ ์ถ๋ ฅ 2
12
'๐ป Algorithm > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] LeetCode 121 Best Time to Buy and Sell Stock (DP) (0) 2022.07.02 [Python] ๋ฐฑ์ค - 2579 ๊ณ๋จ ์ค๋ฅด๊ธฐ (DP) (0) 2021.10.26 [Python] ๋ฐฑ์ค - 1912 ์ฐ์ํฉ (DP) (0) 2021.10.25 [Python] ์ด์ฝํ - ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ํน์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (์ด์งํ์) (0) 2021.10.20 [Python] ์ด์ฝํ - ๋ก๋ณถ์ด ๋ก ๋ง๋ค๊ธฐ (์ด์งํ์) (0) 2021.10.20