-문제:https://www.acmicpc.net/problem/9237

 

9237번: 이장님 초대

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

www.acmicpc.net

 

실버 level5이고, 스스로 풀었던 문제.

원리 이해하는데는 그렇게 어렵지 않았다. 먼저 주어진 값들을 큰 순서대로 나열한 다음, 각각의 인덱스와 인덱스 값을 더해 ans리스트에 넣는다.

ans 값 중 가장 큰 값에 2를 더해서 출력하면 끝

2를 더하는 이유는 처음 시작을 1일부터라고 했는데 인덱스는 0부터 시작이므로 그 차이를 더해줬고, 묘목이 다 자란 다음날에 이장님을 초대한다고 했으므로 묘목이 다 자란 뒤 하루를 더 더했다 

 

-정답풀이: 

n=int(input())
s=list(map(int,input().split()))
s.sort(reverse=True)
ans=[]
for i in range(n):
    ans.append(i+s[i])
print(max(ans)+2)

 

-7월 14일 풀이 

이건 한번에 성공했다!

n=int(input())
trees=list(map(int,input().split()))

trees.sort()
trees.sort(reverse=True)
trees=[0]+trees

answer=0
for i in range(n+1):
    answer=max(answer,i+trees[i])
    
print(answer+1)

+ Recent posts