전공/백준
2212
yha97
2022. 11. 26. 01:30
날짜 : 2022. 11. 25
사용 언어 : python
문제

코드
import sys
n = int(sys.stdin.readline())
k = int(sys.stdin.readline())
dist = list()
area = list(map(int, sys.stdin.readline().split()))
res = 0
area.sort()
#print(area)
for i in range(1, len(area)):
dist.append(abs(area[i] - area[i-1]))
dist.sort()
for i in range(len(dist)-(k-1)):
res += dist[i]
print(res)
풀이
- 조건에 따라 수를 입력받은 후 센서의 좌표를 오름차순으로 정렬한다.
- 그리고 각 좌표간 차이를 구한 이후에 (k-1)만큼 결괏값에 더함으로써 문제를 풀이했다.
- 두 개의 그룹을 지정한 경우에는 각 양 끝 수간의 차이는 가산되지 않기 때문이다.
ex) 1, 2, 3, 6, 7, 8을 두 묶음으로 위 문제의 조건처럼 묶는다면 다음과 같다.
(1, 2, 3) (6, 7, 8) -> 차이가 가산되는 경우는 (3-1)과 (8-6)이다.
알게된 점
-
참고 사이트
-