728x90
1654번: 랜선 자르기
첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그
www.acmicpc.net
분석
이분 탐색
문제 임의의 N개의 숫자가 입력으로 주어집니다. N개의 수를 오름차순으로 정렬한 다음 N개의 수 중 한 개의 수인 M이 주어지면 이분검색으로 M이 정렬된 상태에서 몇 번째에 있는지 출력 자연수
karla.tistory.com
풀이
import sys
input=sys.stdin.readline
k,n=map(int,input().split())
a=[]
for _ in range(k):
a.append(int(input()))
def count(len): # 길이로 만들 수 있는 랜선갯수
cnt=0
for x in a:
cnt+=(x//len)
return cnt
# 이분탐색
l=1
r=max(a)
while l<=r:
mid=(l+r)//2
if count(mid)>=n:
res=mid
l=mid+1
else:
r=mid-1
print(res)
728x90