728x90
반응형
https://www.acmicpc.net/problem/2212
2212번: 센서
첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있
www.acmicpc.net
문제 해결
처음에 문제 이해하는데 오랜 시간이 걸렸다.
'각 집중국의 수신 가능영역의 거리의 합의 최솟값을 구하는 프로그램을 작성하시오. ' 가 주요 문장이다. 이 말은 수신 가능 영역을 open set(열린 집합)으로 나타낼 것인데 그 길이의 합을 물어보는 것이다.
그려면 너무 간단하게 이웃과 거리 n-1개 중 길이가 긴 k-1개를 집중국과 다른 집중국과의 거리로 생각하여 전체 길이에서 빼주면 된다.(위에 그림에서는 4와 7사이 거리가 3으로 가장 길기 때문에 집중국과의 거리로 생각하고 수신 가능한 거리에서 제외 시켰다.
CODE
import sys
input = sys.stdin.readline
n = int(input())
k = int(input())
A = sorted(list(map(int, input().split())))
if k>= n:
print(0)
exit()
dist = []
for i in range(1,n):
dist.append(A[i]-A[i-1])
dist.sort(reverse=True)
for _ in range(k-1):
dist.pop(0)
print(sum(dist))
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 10775 공항 (0) | 2023.03.17 |
---|---|
[python] 백준 2810 컵홀더 (0) | 2023.03.17 |
[python] 백준 9506 약수들의 합 (0) | 2023.03.16 |
[python] 백준 10825 국영수 (0) | 2023.03.16 |
[python] 백준 2812 크게 만들기 (0) | 2023.03.16 |
댓글