반응형
코드
import sys
n = int(input())
n_list = []
for _ in range(n):
a = int(sys.stdin.readline())
n_list.append(a)
n_list.sort(reverse=True)
ans = 0
for i in range(n):
t = n_list[i] - i
if t>0:
ans += t
else:
break
print(ans)
설명
팁을 많이 주는 사람을 먼저 입장시키는 것이 최대 팁을 받을 수 있는 조건이다. 따라서 입력받은 팁을 내림차순으로 정렬해서 차례대로 0부터 n-1을 빼주었다. 만약 음수가 나오면, 그 뒤에 나오는 수들도 모두 음수가 나올 것이 확실하기 때문에 for문을 빠져나온다.
반응형
'알고리즘 > 그리디' 카테고리의 다른 글
[백준][Python] 20115번 에너지 드링크 (1) | 2022.03.30 |
---|---|
[백준][Python] 11508번 2+1 세일 (0) | 2022.03.29 |
[백준][Python] 13305번 주유소 (0) | 2022.03.25 |
[백준][Python] 1343번 폴리오미노 (0) | 2022.03.24 |
[백준][Python] 14916번 거스름돈 (0) | 2022.03.23 |
댓글