코딩테스트 대비/Softeer

[Softeer/Python] 금고털이 ★★☆☆☆ - 효과는 굉장했다!

bluetag_boy 2021. 11. 9. 03:34
반응형
 

Softeer

제한시간 : C/C++(1초), Java/Python/JS(2초) | 메모리 제한 : 256MB 루팡은 배낭을 하나 메고 은행금고에 들어왔다. 금고 안에는 값비싼 금, 은, 백금 등의 귀금속 덩어리가 잔뜩 들어있다. 배낭은 W ㎏까지

softeer.ai

 

SOLUTION

import sys

W, N = map(int, sys.stdin.readline().split())

jewels = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
jewels = sorted(jewels, key=lambda x: x[1], reverse=True) # lambda함수와 reverse=T를 사용하여 가치가 높은 순 으로 정렬 / 무게순으로는 정렬할 필요가 없다.
total_price = 0

for weight, price in jewels:
    if W > weight:
        total_price += weight * price # 보석의 무게 * 가치
        W -= weight

    else:
        total_price += W * price # 남은 W만큼 보석을 잘라낸 무게 * 가치
        break

print(total_price)