728x90
CodeUp 3321 : 최고의 피자
문제 설명
vega 선생님은 Miss 피자 가게의 단골 손님이다.
그는 이번 달부터 절약 생활을 시작했다.
그래서 그는 피자 가게에서 주문할 수 있는 피자 중 1 달러 당 열량이 최대가 되는 피자를 주문하고 싶어한다.
이러한 피자를 "최고의 피자"라고 부르기로 하자.
"최고의 피자"는 1종류가 아니다.
Miss 피자는 N 종류의 토핑에서 여러 종류를 자유롭게 선택하여, 도우 위에 올려 주문할 수있다.
같은 토핑을 2 개 이상 올릴 수 없다.
도우에 토핑을 하나도 하지 않은 피자도 주문할 수있다.
도우의 가격은 A 달러이며, 토핑의 가격은 모두 B 달러이다.
실제 피자 가격은 도우의 가격과 토핑 가격의 합계이다.
즉, 토핑을 k 종류 (0 ≦ k ≦ N) 한 피자의 가격은 A + k × B 원이다.
피자 전체의 칼로리는 도우 열량과 토핑 칼로리의 합계이다.
도우의 가격과 토핑의 가격, 그리고 도우와 각 토핑 열량 값이 주어 졌을 때,
"최고의 피자"의 1 달러 당 열량의 수를 구하는 프로그램을 작성하시오.
시간 제한 : 1 Sec
메모리 제한 : 128 MB
입력
첫 번째 줄에는 토핑 종류 수를 나타내는 하나의 정수 N (1 ≦ N ≦ 100)이 입력된다.
두 번째 줄에는 두 개의 정수 A, B (1 ≦ A ≦ 1000,1 ≦ B ≦ 1000)가 공백을 구분으로 입력된다.
A는 도우의 가격, B는 토핑의 가격을 나타낸다.
세 번째 줄에는 도우의 칼로리를 나타내는 정수 C (1 ≦ C ≦ 10000)가 입력된다.
3 + i 행 (1 ≦ i ≦ N)는 i 번째의 토핑 칼로리 수를 나타내는 정수 Di (1 ≦ Di ≦ 10,000)가 입력된다.
출력
"최고의 피자" 1 달러 당 열량의 수를 소수점 이하는 버리고 정수로 출력한다.
입력 예시
3
12 2
200
50
300
100
출력 예시
37
풀이
n = int(input())
a, b = map(int, input().split())
c = int(input())
tp_list = []
for i in range(n) :
tp_list.append(int(input()))
tp_list.sort(reverse=True)
res = 0
price = 0
cal = 0
for i in tp_list :
cal += i
price += b
tmp=(c+cal)/float(a+price)
if res>tmp:
break
else:
res=tmp
print(int(res))
728x90
'Algorithm(Python) > 그리디' 카테고리의 다른 글
[Algorithm] 백준 BOJ 9237 이장님 초대(python 파이썬) (0) | 2022.07.03 |
---|---|
[Algorithm] 백준 BOJ 1715 카드 정렬하기(python 파이썬) (0) | 2022.07.02 |
[Algorithm] CodeUp 3301 거스름돈(python 파이썬) (0) | 2022.06.14 |
[Algorithm] CodeUp 2001 최소 대금(python 파이썬) (0) | 2022.06.13 |
[Algorithm] 백준 BOJ 2847 게임을 만든 동준이(python 파이썬) (0) | 2022.06.12 |