BOJ 1477번: 휴게소 세우기

2021. 8. 6. 14:31· 알고리즘💻/이분탐색&정렬&분할정복

 

https://www.acmicpc.net/problem/1477

 

1477번: 휴게소 세우기

첫째 줄에 현재 휴게소의 개수 N, 더 지으려고 하는 휴게소의 개수 M, 고속도로의 길이 L이 주어진다. N은 100보다 작거나 같으며, M도 100보다 작거나 같다. L은 100보다 크거나 같고, 1000보다 작거나

www.acmicpc.net

예제를 손으로 풀어봤지만,, 아직도 왜 70이 나오는 지 모르겠다,,,ㅋㅋㅋ

코드로 짜서 풀면 70이 나오긴 하는데 말이지,,

휴게소가 없는 구간의 최댓값을 low = 1 , high = L 로 두고 이분탐색을 통해 값을 찾아갔다. 두 지점 사이의 간격이 mid보다 크면 그 사이에 휴게소를 mid보다 작게 될 만큼 세워주고 m에 개수를 더해준다. 

그리고 m이 M보다 같거나 작다면 길이가 더 짧아질 수 있다는 것이므로 high = mid - 1을 해주고 ans를 최솟값으로 갱신한다. 이때 나는 m==M인 경우에만 갱신을 해야 한다고 생각했는데

"구하려고 하는 값이 휴게소들 사이의 거리의 최대값 중 최소값이고,

count가 M보다 작은 경우에도 역시 남는 휴게소들(count-M개)은 거리가 최대가 아닌 다른 곳에 아무렇게나 넣어도 최대값 mid는 유지가 될 수 있어서,

꼭 count==M인 경우에만 ans를 넣으면 틀린 답이 나올 수 있는 것 같아요." 라는 답이 질문에 있더라....

그리고도 계속 틀렸습니다 나와서 멘붕하고 있던 찰나 다시 코드를 살펴보니 ans를 구해놓고 정작 출력은 mid로 하고 있었다는,,,,,ㅎㅎ,,

import sys
from collections import deque
input = sys.stdin.readline
N, M, L = map(int, input().split())
loc = list(map(int, input().split()))
loc = [0] + loc + [L]
loc.sort()
low = 1
high = L
ans = L
while (low <= high):
    mid = (low+high)//2
    m = 0
    for i in range(1,N+2):
        if (loc[i] - loc[i-1] > mid):
            m += (loc[i]-loc[i-1]-1)//mid
    if (m <= M):
        high = mid - 1
        ans = min(ans, mid)
    else:
        low = mid + 1
print(ans)
저작자표시 (새창열림)

'알고리즘💻 > 이분탐색&정렬&분할정복' 카테고리의 다른 글

BOJ 18113번: 그르다 김가놈  (0) 2021.08.05
BOJ 1074번: Z  (0) 2021.08.05
BOJ 1377번: 버블 소트  (0) 2021.07.19
BOJ 11582번: 치킨 TOP N  (0) 2021.07.19
BOJ 1448: 삼각형 만들기  (0) 2021.07.19
'알고리즘💻/이분탐색&정렬&분할정복' 카테고리의 다른 글
  • BOJ 18113번: 그르다 김가놈
  • BOJ 1074번: Z
  • BOJ 1377번: 버블 소트
  • BOJ 11582번: 치킨 TOP N
호프
호프
호프
Untitled
호프
전체
오늘
어제
  • 분류 전체보기 (341)
    • 오류😬 (4)
    • 스터디📖 (96)
      • 웹 개발 기초 (8)
      • Spring (20)
      • ML, DL (30)
      • Node.js (22)
      • React (0)
      • 블록체인 (12)
      • Go (3)
      • Javascript (1)
    • 알고리즘💻 (153)
      • 그리디 (23)
      • Bruteforce&Backtracking (16)
      • DP (17)
      • 이분탐색&정렬&분할정복 (17)
      • 누적합&투포인터 (6)
      • 스택&큐&덱 (19)
      • 그래프(DFS&BFS) (19)
      • 트리 (7)
      • 우선순위큐&다익스트라 (11)
      • 벨만포드&플로이드와샬 (8)
      • map&set&number theory (5)
      • 기타 (5)
    • 프로젝트 (3)
      • 캡스톤 디자인 프로젝트 (3)
    • 블록체인🔗 (3)
      • Solana (2)
      • 개발 (0)
      • Harmony (1)
    • ASC (6)
    • CS (73)
      • 데이터베이스 (12)
      • 클라우드컴퓨팅 (21)
      • 운영체제 (11)
      • 컴퓨터네트워크 (14)
      • 블록체인응용 (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 복습

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
호프
BOJ 1477번: 휴게소 세우기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.