2018. 1. 7. 14:22, 알고리즘/BOJ
https://www.acmicpc.net/problem/2110
집의 좌표를 미리 정렬해두었다고 가정할 경우 공유기 사이의 거리가 D 이상일 때 공유기를 L개 이상 설치할 수 있는지를 O(N)안에 판단할 수 있습니다. 제일 왼쪽에 있는 집에 공유기를 설치하고 이후 greedy하게 확인하면 되기 때문인데, 왜 그런지 직관적으로 와닿지 않는다면 제일 왼쪽에 있는 집과 이웃한 집의 거리가 D 이상일 떄와 아닐 때로 나누어서 생각해보면 이해가 갈 것입니다.
답은 1~100000000 안에 있을 것이므로 binary search로 찾아나가면 O(log100000000 * N)으로 문제를 해결할 수 있습니다.
https://github.com/encrypted-def/BOJ/blob/master/2110.cpp
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 1239번: 차트 (0) | 2018.01.07 |
---|---|
[BOJ] 1017번: 소수 쌍 (0) | 2018.01.07 |
[BOJ] 1946번: 신입 사원 (0) | 2018.01.07 |
[BOJ] 1958번: LCS 3 (0) | 2018.01.07 |
[BOJ] 11931번: 수 정렬하기 4 (0) | 2018.01.07 |
[BOJ] 1967번: 트리의 지름 (0) | 2018.01.07 |
Comments