반응형
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 |