본문 바로가기

백준 write-up/정렬 & 그리디

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

728x90
반응형

https://www.acmicpc.net/problem/9237

 

9237번: 이장님 초대

입력은 두 줄로 이루어져 있다. 첫째 줄에는 묘목의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄에는 각 나무가 다 자라는데 며칠이 걸리는지를 나타낸 ti가 주어진다. (1 ≤ ti ≤ 1,000,000)

www.acmicpc.net

 

 

 

문제의 접근 방법

 

- 묘목을 구입한 날이 1일: 1부터 시작함을 명심한다.

- 묘목 하나를 심는데 걸리는 시간이 1일이기 때문에 다음 묘목을 심을 때는 1씩 늘어난다는 것을 유의.

- 이장님은 묘목이 다 자란 후 오시기 때문에 1일이 또 추가됨을 안다.

 

 

 

문제 풀이 방법

 

심을 묘목의 개수 n개 입력 받기 -> n개의 묘목이 자라는데 걸리는 일수 입력받기 -> 리스트 day 내림차순으로 정렬 (이유: 가장 오래걸리는 묘목을 제일 빨리 심어야 이장님을 최대한 빨리 초대할 수 있음) -> 누적해서 더한 값들 중 최대 값에 1일을 더해서 출력.

 

 

 

 

소스코드

n = int(input())

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

for i in range(len(day)):
    day[i] = day[i] + i + 1	# 묘목을 심는데 걸리는 일수(누적) + 1일부터 시작

print(max(day)+1)	# 이장님은 묘목이 다 자란 후 다음날 오시기 때문에 1 더하기
728x90
반응형