이번 문제는 정렬을 이용하여 해결하였다. tips를 입력받고, tips[i]-i가 0보다 클 경우에만 결과 변수에 더하는 방식으로 계산했을 때에 최대값을 만들기 위해서는 tips가 내림차순으로 정렬되어야 한다. 이 접근법으로 쉽게 해결할 수 있었다.
tips[i]-i
가 0보다 클 경우, answer에 tips[i]-i
를 더한다.n=int(input())
tips=[]
answer=0
for i in range(n):
tips.append(int(input()))
tips.sort(reverse=True)
for i in range(n):
if tips[i]-i>0:
answer+=tips[i]-i
print(answer)