💡 Codeing Test/백준

백준 5545번 :: 최고의 피자 (python)

밈98 2023. 1. 17. 16:15
문제 

https://www.acmicpc.net/problem/5545

 

5545번: 최고의 피자

첫째 줄에 토핑의 종류의 수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 도우의 가격 A와 토핑의 가격 B가 주어진다. (1 ≤ A, B ≤ 1000) 셋째 줄에는 도우의 열량 C가 주어진다. (1 ≤ C ≤ 10000) 다음 줄

www.acmicpc.net

분류 : 그리디 알고리즘

내 풀이
n = int(input())
a,b = map(int,input().split())
c= int(input())

d = []
for _ in range(n):
    d.append(int(input()))


d.sort(reverse=True)
cnt =0
large=c//a
n=0
for i in d:
    cnt += i
    n+=1
    cash =(c + cnt) // (a + b*n)
    if cash >= large:
        large = cash

print(large)


sort 함수를 이용하여 열량 높은 순으로 토핑 내림차순 정렬
cnt에 토핑을 1개씩 추가할 때마다 1원 당 열량을 구하고 기존의 1원 당 열량보다 크면 1원 당 열량 갱신을 하는 방식으로 풀었다