문제
https://www.acmicpc.net/problem/1758
1758번: 알바생 강호
첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같
www.acmicpc.net
위 문제는 강호가 받을 수 있는 팁의 최댓값을 구해주어야 합니다.
팁은 (각 손님이 원래 생각했던 금액) - (받은 등수 -1)로 계산할 수 있으므로, 팁의 최댓값을 구하기 위해서는 주어지는 각 손님의 원래 손님이 생각했던 금액을 내림차순 정렬해주어야 합니다.
이를 통해 팁을 앞부터 순차적으로 구해주면 팁의 최댓값을 구해줄 수 있습니다.
Python
import sys
input = sys.stdin.readline
n = int(input())
people = []
for i in range(n):
people.append(int(input()))
people.sort(reverse=True)
tip = 0
for idx,val in enumerate(people):
if val - ((idx+1)-1) < 0:
continue
tip += val - ((idx+1)-1)
print(tip)
'백준' 카테고리의 다른 글
| [백준] 11508 2 + 1 세일 - Python (0) | 2023.05.24 |
|---|---|
| [백준] 11399 ATM - Python (1) | 2023.05.24 |
| [백준] 1343 폴리오미노 - Python (0) | 2023.05.24 |
| [백준] 1654 랜선 자르기 - Python (0) | 2023.03.02 |
| [백준] 12891 DNA 비밀번호 - Python (0) | 2023.02.28 |