์ํํฐ์ด | ๊ธ๊ณ ํธ์ด
๋ฌธ์
๋ฃจํก์ ๋ฐฐ๋ญ์ ํ๋ ๋ฉ๊ณ ์ํ๊ธ๊ณ ์ ๋ค์ด์๋ค. ๊ธ๊ณ ์์๋ ๊ฐ๋น์ผ ๊ธ, ์, ๋ฐฑ๊ธ ๋ฑ์ ๊ท๊ธ์ ๋ฉ์ด๋ฆฌ๊ฐ ์๋ฉ ๋ค์ด์๋ค. ๋ฐฐ๋ญ์ W ใ๊น์ง ๋ด์ ์ ์๋ค.
๊ฐ ๊ธ์์ ๋ฌด๊ฒ์ ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ์ด ์ฃผ์ด์ก์ ๋ ๋ฐฐ๋ญ์ ์ฑ์ธ ์ ์๋ ๊ฐ์ฅ ๊ฐ๋น์ผ ๊ฐ๊ฒฉ์ ์ผ๋ง์ธ๊ฐ?
๋ฃจํก์ ์ ๋ํฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๊ท๊ธ์์ ํฑ์ผ๋ก ์๋ฅด๋ฉด ์๋ ค์ง ๋ถ๋ถ์ ๋ฌด๊ฒ๋งํผ ๊ฐ์น๋ฅผ ๊ฐ์ง๋ค.
์ ์ฝ์กฐ๊ฑด
1 โค N โค 106์ธ ์ ์
1 โค W โค 104์ธ ์ ์
1 โค Mi, Pi โค 104์ธ ์ ์
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ๋ฐฐ๋ญ์ ๋ฌด๊ฒ W์ ๊ท๊ธ์์ ์ข
๋ฅ N์ด ์ฃผ์ด์ง๋ค. i + 1 (1 โค i โค N)๋ฒ์งธ ์ค์๋ i๋ฒ์งธ ๊ธ์์ ๋ฌด๊ฒ Mi์ ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ Pi๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ๋ฐฐ๋ญ์ ๋ด์ ์ ์๋ ๊ฐ์ฅ ๋น์ผ ๊ฐ๊ฒฉ์ ์ถ๋ ฅํ๋ผ.
๋ด ํ์ด
import sys
# M = ๊ฐ๋ฐฉ์ ๋ฌด๊ฒ N = ๊ท๊ธ์ ์ข
๋ฅ ์
M, N = map(int, input().split())
data = [[0]*2 for _ in range(N)]
result = 0
for i in range(N):
# M1 = ๊ธ์์ ๋ฌด๊ฒ P1= ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ
M1, P1 = map(int, input().split())
data[i][0] = M1
data[i][1] = P1
# ๊ธ์์ ๊ฐ๊ฒฉ์ด ๋น์ผ ์์ผ๋ก ์ ๋ ฌ
data.sort(key = lambda x : x[1], reverse = True)
for i in range(N):
# ์) 100-70=30 ์ธ๋ฐ ๋ค์ ๊ธ์์ ๋ฌด๊ฒ๊ฐ 90์ผ ๋, ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฏ๋ก M์ ๋ฒ์๋ฅผ ์ ๋ด์ผํจ!
if M >= data[i][0]:
M -= data[i][0]
result += data[i][0] * data[i][1]
else:
result += M * data[i][1]
break
print(result)
์ฒ์ ํ์ด๋ฅผ ํ ๋, ๊ฐ๊ฒฉ์ด ๊ฐ์ ๋ ์ ๋ ฌ์ ํด์ค์ผ ํ๋ค๊ณ ์ฐฉ๊ฐ์ ํด์ ๋ฌธ์ ๋ฅผ ๋์๋์ ํ์๋ค,, ์ด์ ํผ ๋ฌธ์ ์ ๋น์ทํด์ ๊ธ๋ฐฉ ํด๊ฒฐํ ์ฌ๋ฐ๋ ๋ฌธ์ !
'๐ป Coding > [Algorithm]Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ํํฐ์ด | ์ํผ๋ฐ์ด๋ฌ์ค โญโญโญ- PYTHON (0) | 2024.03.20 |
---|---|
์ด์ฝํ | ๋ณผ๋ง๊ณต ๊ณ ๋ฅด๊ธฐ (0) | 2024.01.31 |
์ํํฐ์ด | ๋ฐ์ด๋ฌ์ค (0) | 2024.01.24 |
์ด์ฝํ | ํฐ ์์ ๋ฒ์น (1) | 2024.01.22 |
๋ฐฑ์ค | 1931 ํ์์ค ๋ฐฐ์ ํ๊ธฐ (0) | 2024.01.22 |