[백준] 2110번: 공유기 설치

2022. 9. 24. 00:40TIL💡/Algorithms

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

 

2110번: 공유기 설치

첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가

www.acmicpc.net

이전에 풀었던 인터넷 설치와 굉장히 유사한 문제이다.

인터넷 설치 문제에서는 남은 것중 제일 가격이 비싼 것의 가격이 공유기 설치 문제에서는 가장 인접한 두 공유기 사이의 거리로, 측정 기준이 된다. 이를 기준 삼아 공유기의 최소 거리를 이분 탐색한다.

 

여기서 쉬운 문제 풀이를 위해 첫 번째 집을 시작 기점으로 삼는다. 물론 첫 번째 집에 반드시 공유기를 설치해야 하는 것은 아니지만, 최소한의 설정 거리로 공유기가 최대 몇 개 설치될 수 있는지만 파악하기만 하면 되기 때문이다.

 

여기서 알고리즘은 쉽게 이해했으나, 실수를 너무 어이없이 했고, 실제 시험에서 자주 하는 편이라 명시 해놓는다.

동일한 이름의 변수를 전역, 지역 변수로 동시에 선언했어서 segment fault가 발생했다...흑흑

프로그래머스나 vim에서는 아무래도 경고 알림이 안 떠서 알기가 힘들다.

 

다시 한 번 잘 살펴보고 디버깅을 하자.