아니 누워서 폰하다가 불현듯 풀이가 생각나서 노트북 켰는데 틀렸음 ㅎ
그래서 구글에 검색해봤다.
와 진짜 풀이 간단했다. (근데 처음에 이해못했음ㅎㅋㅎㅋ)
진짜 어이없게 간단했고,, 왜 나는 그런 생각을 하지못하였는가....??
키 순서대로 입력된 리스트 h
를 통해 인접한 학생 간의 키차이를 저장하는 gap
리스트를 생성한다.
그리고 gap
을 정렬한 뒤 k-1
개의 큰 값들을 제외한 합을 구한다.
k-1
개인 이유는 k
개의 그룹을 만들기 때문에 k-1
개의 키차이는 의미가 없다.
import sys
n, k = map(int, sys.stdin.readline().split())
h = list(map(int, sys.stdin.readline().split()))
gap = [h[i] - h[i-1] for i in range(1, n)]
gap.sort()
print(sum(gap[:n-k]))
그리디.. 아직 잘 못한다. 더 많은 문제를 풀어보고 다양한 접근 방식을 익혀둬야겠다.