본문 바로가기

알고리즘/백준

13164. 행복 유치원

인접한 아이끼리만 같은 조가 될 수 있다는 조건을 꼭 읽어야한다.

n명을 k개의 조로 나눌때 그 구간의 길이들 중에서 길이 간격이 가장 긴 k-1개를 제거한다. 

k-1개를 제거하면 k조가 나오니까!

import sys
input = sys.stdin.readline
n,k = map(int,input().split())
heights = list(map(int,input().split()))
costs = []
for i in range(n-1):
  costs.append(heights[i+1]-heights[i])
costs.sort()
print(sum(costs[:n-k]))

아래는 javascript 풀이입니다.

const inputs = require("fs").readFileSync("./dev/stdin").toString().split("\n")
let [n, k] = inputs[0].split(" ").map(Number)
let heights = inputs[1].split(" ").map(Number)
let diff = []
for (let i = 1; i < n; i++) {
  diff.push(heights[i] - heights[i - 1])
}
diff.sort((a, b) => b - a)
diff = diff.slice(k - 1)
const ans = diff.reduce((acc, cur) => acc + cur, 0)
console.log(ans)

'알고리즘 > 백준' 카테고리의 다른 글

10159. 저울  (0) 2022.03.21
2638. 치즈  (0) 2022.03.20
9576. 책 나눠주기  (0) 2022.03.20
9205. 맥주 마시면서 걸어가기  (0) 2022.03.10
2250. 트리의 높이와 너비  (0) 2022.03.02