๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[Softeer] python ๊ธ๊ณ ํธ์ด ๋ณธ๋ฌธ
728x90
๋ฐ์ํ
<๋ณธ ๋ธ๋ก๊ทธ๋ Softeer์ ์ฝ๋ฉํ ์คํธ ๋ฌธ์ ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค>
https://softeer.ai/practice/info.do?idx=1&eid=395
โญ ๋ฌธ์
์ธ์ด๋ณ ์๊ฐ/๋ฉ๋ชจ๋ฆฌ
Python 3์ด 256MB
๋ฌธ์
๋ฃจํก์ ๋ฐฐ๋ญ์ ํ๋ ๋ฉ๊ณ ์ํ๊ธ๊ณ ์ ๋ค์ด์๋ค.
๊ธ๊ณ ์์๋ ๊ฐ๋น์ผ ๊ธ, ์, ๋ฐฑ๊ธ ๋ฑ์ ๊ท๊ธ์ ๋ฉ์ด๋ฆฌ๊ฐ ์๋ฉ ๋ค์ด์๋ค.
๋ฐฐ๋ญ์ W ใ๊น์ง ๋ด์ ์ ์๋ค.
๊ฐ ๊ธ์์ ๋ฌด๊ฒ์ ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ์ด ์ฃผ์ด์ก์ ๋ ๋ฐฐ๋ญ์ ์ฑ์ธ ์ ์๋ ๊ฐ์ฅ ๊ฐ๋น์ผ ๊ฐ๊ฒฉ์ ์ผ๋ง์ธ๊ฐ?
๋ฃจํก์ ์ ๋ํฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๊ท๊ธ์์ ํฑ์ผ๋ก ์๋ฅด๋ฉด ์๋ ค์ง ๋ถ๋ถ์ ๋ฌด๊ฒ๋งํผ ๊ฐ์น๋ฅผ ๊ฐ์ง๋ค.
์ ์ฝ์กฐ๊ฑด
1 ≤ N ≤ 106์ธ ์ ์
1 ≤ W ≤ 104์ธ ์ ์
1 ≤ Mi, Pi ≤ 104์ธ ์ ์
์ ๋ ฅํ์
์ฒซ ๋ฒ์งธ ์ค์ ๋ฐฐ๋ญ์ ๋ฌด๊ฒ W์ ๊ท๊ธ์์ ์ข ๋ฅ N์ด ์ฃผ์ด์ง๋ค.
i + 1 (1 ≤ i ≤ N)๋ฒ์งธ ์ค์๋ i๋ฒ์งธ ๊ธ์์ ๋ฌด๊ฒ Mi์ ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ Pi๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅํ์
์ฒซ ๋ฒ์งธ ์ค์ ๋ฐฐ๋ญ์ ๋ด์ ์ ์๋ ๊ฐ์ฅ ๋น์ผ ๊ฐ๊ฒฉ์ ์ถ๋ ฅํ๋ผ.
์ ๋ ฅ์์ 1
100 290 170 2
์ถ๋ ฅ์์ 1
170
โ Code
# ๊ธ, ์, ๋ฐฑ๊ธ ๋ฑ์ ๊ท๊ธ์ ๋ฉ์ด๋ฆฌ
# ๋ฐฐ๋ญ์ W ใ๊น์ง ๋ด์ ์ ์์
# ๊ท๊ธ์์ ํฑ์ผ๋ก ์๋ฅด๋ฉด ์๋ ค์ง ๋ถ๋ถ์ ๋ฌด๊ฒ๋งํผ ๊ฐ์น๋ฅผ ๊ฐ์ง
# ๊ฐ ๊ธ์์ ๋ฌด๊ฒ์ ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ์ด ์ฃผ์ด์ก์ ๋
# ๋ฐฐ๋ญ์ ์ฑ์ธ ์ ์๋ ๊ฐ์ฅ ๊ฐ๋น์ผ ๊ฐ๊ฒฉ?
import sys
input = sys.stdin.readline
# ๋ฐฐ๋ญ ๋ฌด๊ฒ, ๊ท๊ธ์ ์ข
๋ฅ
W, N = map(int, input().split())
table = []
for i in range(N):
m, p = map(int, input().split())
table.append((m, p))
# ๊ฐ๊ฒฉ ๋น์ผ ์์๋๋ก -> [(70,2),(90,1)]
table.sort(key=lambda x: x[1], reverse=True)
answer = 0
# ๊ธ์์ ๋ฌด๊ฒ Mi์ ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ
for m, p in table:
if W > m:
answer += m * p # ๋ณด์ ๋ฌด๊ฒ * ๊ฐ์น
W -= m
else:
answer += W * p # ์๋ผ๋ธ ๋ณด์ ๋ฌด๊ฒ * ๊ฐ์น
break
print(answer)
728x90
๋ฐ์ํ
'๐ฆฅ ์ฝํ > Softeer' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Softeer] python [์ธ์ฆํ๊ฐ(4์ฐจ) ๊ธฐ์ถ] ํต๊ทผ๋ฒ์ค ์ถ๋ฐ ์์ ๊ฒ์ฆํ๊ธฐ (1) | 2023.01.07 |
---|---|
[Softeer] python [์ธ์ฆํ๊ฐ(5์ฐจ) ๊ธฐ์ถ] ์ฑ์ ํ๊ฐ (0) | 2023.01.07 |
[Softeer] python A+B (0) | 2023.01.06 |
[Softeer] python ๊ทผ๋ฌด ์๊ฐ (0) | 2023.01.06 |
[Softeer] python ์ฃผํ๊ฑฐ๋ฆฌ ๋น๊ตํ๊ธฐ (0) | 2023.01.06 |
Comments