[BOJ] 백준 2110 공유기 설치

태환·2024년 1월 29일
0

Coding Test

목록 보기
22/151

📌 [BOJ] 백준 2110 공유기 설치

📖 문제

📖 예제

📖 풀이

import sys

N, C = map(int, input().split())
array = []
for _ in range(N):
  array.append(int(sys.stdin.readline()))

array.sort()
start = 1
end = max(array)

while start <= end:
  mid = (start+end)//2
  current = array[0]
  count = 1
  for i in array:
    if current + mid <= i:
      current = i
      count += 1
  if count >= C:
    start = mid + 1
    result = mid
  else:
    end = mid - 1

print(result)

공유기 설치 간격을 mid로 설정하여 이진 탐색을 수행한다.
공유기 설치 갯수와 입력값 C가 같을 때의 공유기 설치 간격 mid를 result로 출력한다.
start 값을 입력 배열 array의 최소값으로 설정할 때는 채점 결과 오답으로 나왔다.

profile
연세대학교 컴퓨터과학과 석사 과정

0개의 댓글