728x90
๋ฐ์ํ
https://softeer.ai/practice/info.do?idx=1&eid=395
๋ฐ์ํ
๋ฌธ์ ์ ๋ฆฌ
- ๋ฃจํก์ ๋ฐฐ๋ญ์ ํ๋ ๋ฉ๊ณ ์ํ๊ธ๊ณ ์ ๋ค์ด์๋ค.
- ๊ธ๊ณ ์์๋ ๊ฐ๋น์ผ ๊ธ, ์, ๋ฐฑ๊ธ ๋ฑ์ ๊ท๊ธ์ ๋ฉ์ด๋ฆฌ๊ฐ ์๋ค.
- ๊ฐ ๊ธ์์ ๋ฌด๊ฒ์ ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ์ด ์ฃผ์ด์ก์ ๋ ๋ฐฐ๋ญ์ ์ฑ์ธ ์ ์๋ ๊ฐ์ฅ ๊ฐ๋น์ผ ๊ฐ๊ฒฉ์ ๊ตฌํ๋ผ.
- ๋ฃจํก์ ์ ๋ํฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๊ท๊ธ์์ ํฑ์ผ๋ก ์๋ฅด๋ฉด ์๋ ค์ง ๋ถ๋ถ์ ๋ฌด๊ฒ ๋งํผ ๊ฐ์น๋ฅผ ๊ฐ์ง๋ค.
ํด๊ฒฐ๋ฐฉ๋ฒ
์์ ๊ฐ ์๋์ ๊ฐ์ด ์ฃผ์ด์ง๋ค.
100 2
90 1
70 2
- w = 100
- ๋ณด์์ ๊ฐ์ = 2
- 1๋ฒ์งธ ๋ณด์์ ๋ฌด๊ฒ๊ฐ 90์ด๊ณ ๋ฌด๊ฒ๋น 1๊ฐ์ ๊ฐ์ง๋ค.
- 2๋ฒ์งธ ๋ณด์์ ๋ฌด๊ฒ๊ฐ 70์ด๊ณ ๋ฌด๊ฒ๋น 2๊ฐ์ ๊ฐ์ง๋ค.
- ๊ฐ์ฅ ๋น์ผ ๊ฐ์ ๋ง๋ค์ด์ผ ํ๋ค.
- ์ ๋ ฅ๋ฐ์ ๋ณด์ ๋ฌด๊ฒ์ ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ์ ๋ฐฐ์ด์ ๋ฃ๋๋ค.
- ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ์ด ๋น์ผ ์์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ค.
- ๋ฌด๊ฒ w์ ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ์ ๋น๊ตํ์ฌ ์ต๋ ๊ฐ์ ๊ตฌํ๋ค.
์ฌ๊ธฐ์ ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ์ด๋ผ๋ ๊ฒ์ด
90 1์ด ์ฃผ์ด์ง๋ฉด, ์ด ๋ณด์์ 1kg ๋น 1์ ๊ฐ์ ๊ฐ์ง๋ค๋ ๊ฒ์ด๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก 70 2๋ 1kg ๋น 2์ ๊ฐ์ ๊ฐ์ง๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ์ด ๋์ ์์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ ๊ฒ์ด๋ค.
๋ฐ์ํ
๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ณด์์ ์ต๋ ๊ฐ์ ๊ตฌํ ์ ์๋ค.
๋ฐ๋ผ์ ๋ณด์ 100kg์ ๋ฐฐ๋ญ์ ๋ด์ ์ ์๋ ์ต๋ ๊ฐ์ 170์ด ๋๋ค.
import sys
input = sys.stdin.readline
# ๋ฌด๊ฒ, ๋ณด์ ๊ฐ์
w, n = map(int, input().split())
graph = []
for i in range(n):
# ๋ฌด๊ฒ, ๋ฌด๊ฒ๋น ๊ฐ๊ฒฉ
m, p = map(int,input().split())
graph.append([m,p])
graph = sorted(graph, key=lambda x: -x[1])
answer = 0
# ์ต๋ ๊ฐ์ ๊ตฌํ๋ ๊ณผ์
for i in graph:
weight = i[0]
price = i[1]
if w >= weight:
answer += weight*price
w-=weight
else:
answer += w*price
break
print(answer)
728x90
๋ฐ์ํ
'๐ Development > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ํํฐ์ด Softeer] ๋ฐ์ด๋ฌ์ค (Lv.2) - ํ์ด์ฌ(Python) (0) | 2024.06.24 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฃผ์ ๊ฐ๊ฒฉ(Lv.2) - ํ์ด์ฌ(Python) (0) | 2024.06.19 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์ (Lv.1) - ํ์ด์ฌ(Python) (0) | 2024.06.19 |
[ํ๋ก๊ทธ๋๋จธ์ค] H-Index (Lv.2) - ํ์ด์ฌ(Python) (0) | 2024.06.19 |
[๋ฐฑ์ค] 2559๋ฒ ์์ด - ํ์ด์ฌ Python ํ์ด (0) | 2023.06.02 |