코드
K, N = map(int, input().split())
line = []
plus = 0
for i in range(K):
a = int(input())
line.append(a)
plus = plus + a
plus = int(plus / N)
start = 1
end = plus
while(start <= end):
mid = (start+end) // 2
cnt = 0
for i in range(K):
cnt += line[i] // mid
if(cnt >= N):
start = mid+1
else:
end = mid -1
print(end)
알게된 점
LG는 코테를.. c++을 지원을 안한다는 소문이 있다,,
그래서 바로 파이썬 공부를 시작했다.
이분탐색은 start와 end를 이용해서 범위를 구한다는 점에 주목을 해야할 것 같다.
원리는 알고 있었는데, 알고리즘 코드를 다시한번 기억해야겠다.
'하루하나코딩' 카테고리의 다른 글
백준 9095 : 1, 2, 3 더하기 c++ (0) | 2023.03.06 |
---|---|
프로그래머스 : 입국심사 c++ (0) | 2023.02.22 |
백준 18290 : NM과 K(1) c++ (0) | 2023.02.17 |
백준 15657 : N과 M(8) c++ (0) | 2023.02.17 |
백준 15656 : N과 M(7) c++ (0) | 2023.02.17 |