본문 바로가기

백준

[백준] 9237번 - 이장님 초대

반응형

1. 문제

 

 

2. 코드

n = int(input())
l = list(map(int, input().split()))
l.sort()
max_l = 0

for i in range(n):
    l[i] = l[i] - i
    if l[i] > max_l:
        max_l = l[i]

print(max_l + n + 1)

 

 

3. 풀이

그리디와 정렬을 사용한 문제이다.

자라는 데에 오래 걸리는 나무부터 심었을 때, 모든 나무를 다 심고 나서도 자라는 데에 걸리는 시간을 구한다. l[i] - i

l[i] - i 중 가장 큰 값을 찾고, 거기에 n+1을 해준다.

즉, 나무를 심는데에 걸리는 시간(n) + 나무 다 심고도 다 자라는 데까지 걸리는 시간 (l[i] - i) + 1 인 것이다.

728x90
반응형

'백준' 카테고리의 다른 글

[백준] 3273번 - 두 수의 합 (파이썬)  (0) 2022.01.30
[백준] 1476 - 날짜 계산 (파이썬)  (0) 2022.01.29
[백준] 3135번 - 라디오  (0) 2022.01.21
[백준] 16435번 - 스네이크버드  (0) 2022.01.21
[백준] 15729 - 방탈출  (0) 2022.01.19