본문 바로가기

📚 Algorithm/9oormthon Challenge

[구름톤 챌린지 - 9oormthon Challenge] Day 15 과일 구매 - Python 파이썬 풀이

구름톤 챌린지 15일차 - 과일 구매
 

📜  문제 

 

✏️ 입력 

 

✏️ 출력

 

💡 풀이 

그리디 알고리즘으로 풀 수 있는 이번 문제는 3주차에서 비교적 쉬운 문제였다. 

P(과일 가격), C(포만감)을 입력 받고, 각 과일의 조각마다 가지는 포만감을 value라고 정해 fruit 리스트에 한 번에 넣었다. 

그리고 가격은 싸면서 포만감이 높아야하기 때문에 value를 기준으로 내림차순 정렬을 했다.

 

N, K = map(int, input().split()) #N:과일의개수, K:가진돈
fruit=[]
cnt = 0
for i in range(N) :
    P, C = map(int, input().split())    #P:각 과일의 가격, C:포만감
    value = C // P
    fruit.append([P, C, value])

fruit.sort(key=lambda x : x[2], reverse=True)	#내림차순 정렬

for i in range(N) :
    if K >= fruit[i][0] :
        cnt += fruit[i][1]
        K -= fruit[i][0]
    else :
        cnt += (fruit[i][1] // fruit[i][0]) * K
        K = 0

print(cnt)

 

 

 

 

 

728x90