이진탐색을 이용하면 시간안에 풀 수 있다.
def binary_search(): first, last = 0, max(arr) check = 0 while first <= last or check > x: check = 0 mid = (first + last) // 2 for i in arr: if i < mid: check += i else: check += mid if check <= x: first = mid + 1 else: last = mid - 1 print(mid) n = int(input()) arr = list(map(int, input().split())) x = int(input()) binary_search()
'BackJoon' 카테고리의 다른 글
1931 회의실배정 [그리디 알고리즘] (0) | 2016.12.02 |
---|---|
10164 격자상의 경로 [python] (0) | 2016.12.01 |
1937 욕심쟁이 판다 [Python] (0) | 2016.12.01 |
11722 가장 긴 감소하는 부분 수열 [python] (0) | 2016.12.01 |
2178번 미로탐색 [Python] (0) | 2016.11.10 |