https://www.acmicpc.net/problem/15553
๋ฌธ์

๋๋ก๋ฅผ ๊ฐ์ฅ ์กฐ๊ธ ํฌ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค.
์์ ๋ฅผ ๋ณด์
input
3 2
1
3
6
answer 4
ํด๋น ์์ ์์๋ 3๋ช ์ ์น๊ตฌ๊ฐ ์ค๊ณ , 2๊ฐ์ ์ฑ๋ฅ์ด ์๋ค.
1 2 3 4 5 6์ด ์๋ค๊ณ ํ ๋, ์น๊ตฌ๋ Ti +1์๊ฐ๊น์ง ๊ตฌ์ฌ๊ณผ์ ๋ฐฉ์ ๋จธ๋ฌผ๊ธฐ ๋๋ฌธ์ 1, 2, 3, 4, 6, 7 ์๋ ๋ฌด์กฐ๊ฑด ๋๋ก๊ฐ ์ผ์ ธ ์์ด์ผ ํ๋ค. ๋ฐ๋ผ์ 1์์ ํค๊ณ 4์์ ๋ ๋ค์, ๋ค์ 6์์ ํค๋ฉด ๋๋ค.
์ด๋ ๊ฒ ์ต์ํ์ ๋๋ก๊ฐ ์ผ์ ธ ์๋ ์๊ฐ์ ๊ตฌํ๊ธฐ ์ํด์๋, ๋ค๋ฅธ ์น๊ตฌ๋ค๊ณผ์ ๊ฐ๊ฒฉ์ด ๊ธด ์น๊ตฌ๋ค ๋จผ์ ๋ฝ์๋ด์ด ์๋ค๋ง ๋ฐ๋ก ๋๋ก๋ฅผ ์ผ์ผ ํ๋ค. ๊ฐ๊ฒฉ์ด ๋์ ์๋ก ์๊ฐ์ด ๋ ๊ธธ์ด์ง๊ธฐ ๋๋ฌธ์ด๋ค.
const INPUT_FILE = process.platform === "linux" ? "/dev/stdin" : "./inputs.txt";
const inputs = require("fs")
.readFileSync(INPUT_FILE)
.toString()
.trim()
.split("\n");
let [n, k] = inputs[0].split(" ").map(Number);
const times = inputs.slice(1).map(Number);
const gaps = [];
let totalTime = times[n - 1] + 1 - times[0];
for (let i = 1; i < n; i++) {
gaps.push(times[i] - times[i - 1] - 1);
}
gaps.sort((a, b) => b - a);
for (let i = 0; i < k - 1; i++) {
totalTime -= gaps[i];
}
console.log(totalTime);๋ฐ๋ผ์ ๋งจ ์ฒ์์๋ ์ฒ์๋ถํฐ ๋๊น์ง ํ ๋ฒ๋ ๋๋ก๋ฅผ ์ ๊ป์ ๋ ๊ฑธ๋ฆฐ ์๊ฐ์์ ๊ฐ ์น๊ตฌ๋ค๊ฐ์ ์๊ฐ์ ๊ตฌํ ๋ค์์ ๋จ์ถ๋๋ ๊ฐ๊ฒฉ๋งํผ์ ๋นผ์ฃผ๋ฉด ๋๋ค.
