[ BOJ / Python ] 1758번 알바생 강호

황승환·2022년 3월 11일
0

Python

목록 보기
240/498


이번 문제는 정렬을 이용하여 해결하였다. tips를 입력받고, tips[i]-i가 0보다 클 경우에만 결과 변수에 더하는 방식으로 계산했을 때에 최대값을 만들기 위해서는 tips가 내림차순으로 정렬되어야 한다. 이 접근법으로 쉽게 해결할 수 있었다.

  • n을 입력받는다.
  • tips를 입력받는다.
  • 정답을 저장할 변수 answer를 0으로 선언한다.
  • n번 반복하는 i에 대한 for문을 돌린다.
    -> tips를 입력받는다.
  • tips를 내림차순으로 정렬한다.
  • n번 반복하는 i에 대한 for문을 돌린다.
    -> 만약 tips[i]-i가 0보다 클 경우, answer에 tips[i]-i를 더한다.
  • answer를 출력한다.

Code

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)

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글