알고리즘/Greedy

(파이썬 python) 백준 9237번 : 이장님 초대(greedy)

Aytekin 2022. 5. 11. 06:04
728x90

1. 다 자라는데 가장 오랜 기간이 걸리는 나무를 첫 날 심어줘야 하기 때문에 나무를 내림차순 정렬

2. 심는데 1일, 다 자라고 나서 1일 총 2일 필요 + 심는 날짜 별로 일수 추가

3. 제일 늦게 완성되는 날짜 일수 출력.

 

예 - [2,3,4,3]의 나무가 있는 경우

1. 나무 [4,3,3,2]로 정렬

2. 각 나무 완성에 필요한 일수 계산 -> [2,3,4,5]를 각각 자리별로 더해줌.

3. 더해진 리스트에서 최대값 출력

 

# 9237번 : 이장님 초대

n = int(input())

li = list(map(int,input().split()))
li.sort(reverse=True)

li2 = [i+2 for i in range(n)]

ans = [x+y for x,y in zip(li,li2)]

print(max(ans))
728x90