알고리즘 공부/이진탐색
[백준] 1197번 랜선 자르기 - 파이썬
코딩 코딩 코오딩
2022. 4. 12. 09:15
https://www.acmicpc.net/problem/1654
1654번: 랜선 자르기
첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그
www.acmicpc.net
import sys
k,n = map(int, sys.stdin.readline().split())
lan = []
for i in range(k):
lan.append(int(sys.stdin.readline()))
lan.sort()
start = 1
end = lan[-1]
while start <= end:
mid = (start+end)//2
count = 0
for i in range(len(lan)):
count += lan[i]//mid
if count >= n:
start = mid + 1
else:
end = mid - 1
print(end)
이분 탐색의 대표적인 문제이다.
알고리금을 모르면 풀기 어려운 문제인 만큼 정답률이 높지는 않아
알고 있지 않으면 틀리는 문제라...
꼭 알아두고 기억해두자
반응형