[1477] 휴게소 세우기 (이분 탐색)

2023. 6. 12. 12:22·Coding Test/Search
728x90
 

1477번: 휴게소 세우기

첫째 줄에 현재 휴게소의 개수 N, 더 지으려고 하는 휴게소의 개수 M, 고속도로의 길이 L이 주어진다. 둘째 줄에 현재 휴게소의 위치가 공백을 사이에 두고 주어진다. N = 0인 경우 둘째 줄은 빈 줄

www.acmicpc.net

 

 

분석

 

 

풀이 

"""
현재 고속도로에 휴게소를 N개 가지고 있는데, 휴게소의 위치는 고속도로의 시작으로부터 얼만큼 떨어져 있는지로 주어진다. 다솜이는 지금 휴게소를 M개 더 세우려고 한다.
다솜이는 이 고속도로를 이용할 때, 모든 휴게소를 방문한다. 다솜이는 휴게소를 M개 더 지어서 휴게소가 없는 구간의 길이의 최댓값을 최소로 하려고 한다. (반드시 M개를 모두 지어야 한다.)
고속도로의 길이가 1000이고, 현재 휴게소가 {200, 701, 800}에 있고, 휴게소를 1개 더 세우려고 한다고 해보자.
일단, 지금 이 고속도로를 타고 달릴 때, 휴게소가 없는 구간의 최댓값은 200~701구간인 501이다. 하지만, 새로운 휴게소를 451구간에 짓게 되면, 최대가 251이 되어서 최소가 된다.

첫째 줄에 현재 휴게소의 개수 N, 더 지으려고 하는 휴게소의 개수 M, 고속도로의 길이 L이 주어진다.
둘째 줄에 현재 휴게소의 위치가 공백을 사이에 두고 주어진다. N = 0인 경우 둘째 줄은 빈 줄이다.
0 ≤ N ≤ 50
1 ≤ M ≤ 100
100 ≤ L ≤ 1,000
"""
import sys
input=sys.stdin.readline

n,m,l=map(int,input().split())
arr=list(map(int,input().split()))
arr.insert(0,0)
arr.append(l)
arr.sort()

res = 0

def count(mid):
    cnt=0
    for i in range(1, len(arr)):
        if arr[i]-arr[i-1]>mid:
            cnt+=(arr[i]-arr[i-1]-1)//mid
    return cnt

start=1
end=l-1
while start <= end:
    mid=(start+end)//2
    if count(mid)>m:
        start=mid+1
    else:
        end=mid-1
        res=mid
print(res)

 

 

더보기
 

[1654] 랜선 자르기(이분탐색, 결정 알고리즘)

1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고

karla.tistory.com

 

마구간 정하기 (이분탐색, 결정 알고리즘)

문제 N개의 마구간이 수직선상에 있습니다. 각 마구간은 x1, x2, x3, ......, xN의 좌표 현수는 C마리의 말을 가지고 있는데, 이 말들은 서로 가까이 있는 것을 좋아하지 않습니다. 각 마구간에는 한 마

karla.tistory.com

 

 

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)
'Coding Test/Search' 카테고리의 다른 글
  • [3079] 입국심사 (이분 탐색)
  • [1300] k번째 수 (이분탐색, 2차원 배열)
  • [2343] 기타 레슨 (블루레이 만들기, 이진탐색)
  • 마구간 정하기 (이분탐색, 결정 알고리즘)
Karla Ko
Karla Ko
𝘾𝙤𝙣𝙩𝙞𝙣𝙪𝙤𝙪𝙨𝙡𝙮 𝙄𝙢𝙥𝙧𝙤𝙫𝙞𝙣𝙜, 𝘾𝙤𝙣𝙨𝙩𝙖𝙣𝙩𝙡𝙮 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙞𝙣𝙜 𝙔𝙚𝙨!
    250x250
  • Karla Ko
    karlaLog
    Karla Ko
  • 전체
    오늘
    어제
    • Total (467)
      • Spring (19)
      • JPA (4)
      • Cloud & Architecture (15)
        • Kubernetes (5)
        • Docker (3)
        • MSA (2)
        • GCP (1)
        • AWS (4)
      • Devops (1)
      • Message Queue (4)
        • Kafka (2)
        • RabbitMQ (2)
      • Git (4)
      • DB (4)
      • Java (9)
      • Python (4)
      • CS (11)
        • OS (8)
        • Network (2)
        • Algorithm (1)
      • Coding Test (392)
        • programmers (156)
        • Graph (43)
        • DP (37)
        • Search (31)
        • Tree (13)
        • Data Structure (26)
        • Combination (12)
        • Implement (18)
        • Geedy (23)
        • Sort (7)
        • Math (21)
        • geometry (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬
    프로그래머스
    구현
    동적계획법
    트리
    DFS
    정렬
    힙
    조합
    덱
    Algorithm
    스택
    BFS
    이분탐색
    그리디
    재귀
    플로이드워셜
    LIS
    최소신장트리
    DP
    구간합
    백준
    자료구조
    알고리즘
    월간코드챌린지
    최대공약수
    큐
    그래프
    최단거리
    다익스트라
  • hELLO· Designed By정상우.v4.10.3
Karla Ko
[1477] 휴게소 세우기 (이분 탐색)
상단으로

티스토리툴바