[Gold V]
https://www.acmicpc.net/problem/13164
13164번: 행복 유치원
행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로
www.acmicpc.net
풀이
[백준] 2212. 센서 - Python 와 거의 동일한, 간단한 Greedy 문제.
모든 원생의 키를 오름차순으로 정렬 후, 옆 사람과의 키 차이를 저장하고,
키 차이를 다시 오름차순으로 정렬 후, 맨 뒤에서부터 (K-1)개를 빼고 모두 더하면 된다.
K개의 조로 나눈다는 것은, 중간에 키 차이를 무시하고 넘어갈 수 있는 횟수가 K-1번이라는 뜻이라고 생각할 수 있다.
AC.
N, K = map(int, input().split()) heights = list(map(int, input().split())) heights.sort() # 키 순 정렬 # 바로 옆 사람과의 키 차이를 계산하여 저장. gaps = [] for i in range(len(heights)-1): gaps.append(heights[i + 1] - heights[i]) # 차이의 크기 순으로 정렬 후, 가장 큰 K-1개의 차이를 빼고 계산 (Greedy) gaps.sort() if K > 1: print(sum(gaps[:-(K-1)])) else: print(sum(gaps))