백준 9237번 이장님 초대 파이썬

박슬빈·2021년 9월 13일
1

알고리즘

목록 보기
14/40

문제

입력 , 출력

solution

import sys

input = sys.stdin.readline
n = int(input())
arr = list(map(int, input().split()))
arr.sort()
for i in range(n):
    arr[i] = arr[i] - i
print(max(arr) + 1 + n)

설명

자라는데 가장 오래걸리는 묘목 부터 심기위해서 배열을 sort
가장 작을것을 마지막에 심기 때문에
1번째는 -0 , 2번째는 마지막을 심기전에 심었으니 -1 그렇게
for문을 n번 돌리면 가장 오래걸리는 묘목에는 -n 그전에는 -(n-1)
여기서 가장 큰값을 고른뒤에 처음심는 것을 체크하기위해 +1 그리고 모두 심는데 n번 걸렸으니 +n
해서 마지막에 max(arr)+1+n 을하면 정답이다.

profile
이것저것합니다

0개의 댓글