문제
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원 당 열량 갱신을 하는 방식으로 풀었다
'💡 Codeing Test > 백준' 카테고리의 다른 글
백준 11659) 구간 합 구하기4 (JAVA) (0) | 2023.03.05 |
---|---|
백준 11720) 숫자의 합 (JAVA) (0) | 2023.03.05 |
백준 3085 :: 사탕 게임 (python) (0) | 2023.01.24 |
백준 2805번 :: 나무 자르기 (python) (0) | 2023.01.24 |
백준 15903번 :: 카드 합체 놀이 (python) (0) | 2023.01.17 |