자료구조 & 알고리즘/백준(Baekjoon)

백준 2512(파이썬) - 예산

resilient 2021. 3. 25. 02:22
728x90
반응형

www.acmicpc.net/problem/2512

 

2512번: 예산

첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상

www.acmicpc.net

# (시간초과)
import sys
input = sys.stdin.readline
n = int(input())
data = list(map(int,input().split()))
m = int(input())
result=0
mid = m//n
ans = 0
while(result<=m):
    result = 0
    mid +=1
    for i in data:
        if(mid-i>=0):
            result += i
        else:
            result += mid
print(mid-1)

#맞는코드
import sys
input = sys.stdin.readline
n = int(input())
data = list(map(int,input().split()))
m = int(input())
start = 0
end = max(data)
while(start<=end):
    mid = (start+end)//2
    ans = 0
    for i in data:
        if i>=mid:
            ans += mid
        else:
            ans += i
    if ans<=m:
        start = mid+1
    else:
        end = mid -1
print(end)

반응형