📒 알고 가야 하는 것
- 이진탐색: 오름차순된 자료를 반으로 나누어 탐색하는 방법.
def binary_search(target, data) :
data.sort()
start = 0
end = len(data) - 1
while start <= end :
mid = (start + end) // 2
if data[mid] == target :
return mid
elif data[mid] < target :
start = mid + 1
else :
end = mid - 1
return None
📌 코드
from re import T
import sys
N, M = map(int, sys.stdin.readline().split())
l = list(map(int, sys.stdin.readline().split()))
right = max(l)
left = 1
while left <= right :
mid = (left + right) // 2
count = 0
for i in range(len(l)) :
if l[i] - mid > 0 :
count = count + (l[i] - mid)
if M > count :
right = mid -1
elif M <= count :
left = mid +1
print(right)
### 📌 **피드백**
- 이진탐색에 대해서 정확히 구현하지 못했음...
- 잘 인지했다가 나중에 써먹을 필요가 있다!