====== 센서 ====== ===== 풀이 ===== * 문제 설명을 이해하는게 조금 까다롭다. 집중국들의 수신 영역이 겹치게 되면 당연히 최적이 아니니까, 센서들이 소팅되어있다고 하면 1번째 집중국은 1번부터 i번 센서의 위치까지를 커버하고, 2번째 집중국은 i+1번부터 j번 센서의 위치까지를 커버하고, 3번 집중국은 j+1번째부터... 이런식으로 각 집중국의 커버 범위가 정해지게 된다. 집중국의 수신 영역의 합은 (pos[i] - pos[0]) + (pos[j] - pos[i+1]) + (pos[k] - pos[j+1]) ...이렇게 되고, 이 값을 최소화시키는 i,j,k,.. 을 찾는 문제가 된다. * 이렇게 문제를 이해해놓고 보면, [[ps:problems:boj:13164]]과 정확히 똑같은 것을 구하는 문제가 된다; 똑같은 문제이므로 풀이는 그쪽을 참고. 코드도 동일하다 ===== 코드 ===== """Solution code for "BOJ 2212. 센서". - Problem link: https://www.acmicpc.net/problem/2212 - Solution link: http://www.teferi.net/ps/problems/boj/2212 Tags: [Greedy] """ import itertools def main(): N = int(input()) K = int(input()) censors = [int(x) for x in input().split()] diffs = [b - a for a, b in itertools.pairwise(sorted(censors))] print(sum(sorted(diffs)[:N - K])) if __name__ == '__main__': main() {{tag>BOJ ps:problems:boj:골드_5}}