그리디 문제
테이프가 부족하면 카운트를 늘리고
현재 위치를 갱신해가면 되는 문제이다
https://www.acmicpc.net/problem/1449
1449번: 수리공 항승
첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나
www.acmicpc.net
let input = [];
const readline = require("readline").createInterface({
input: process.stdin,
output: process.stdout,
});
readline.on("line", (line) => {
input.push(line);
});
readline.on("close", () => {
solution(input);
process.exit();
});
const solution = (input) => {
let [n, len] = input[0].split(" ").map((el) => Number(el));
// console.log(len);
let arr = input[1].split(" ").map((el) => Number(el));
let cnt = 0;
// 오름차순으로 정렬
arr.sort((a, b) => a - b);
// 첫 누수를 시작 위치로 설정
let pos = arr[0];
for (let i = 1; i < n; i++) {
// 테이프 길이가 부족하면
if (len <= arr[i] - pos) {
// 새 테이프를 사용해야하므로 cnt++
cnt++;
// 새 누수 지점을 시작 지점으로 재설정한다
pos = arr[i];
}
}
// 마지막 테이프 포함
cnt++;
console.log(cnt);
};
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 4949/javascript] 균형잡힌 세상 (0) | 2022.10.23 |
---|---|
[백준 1920/javascript] 수 찾기 (0) | 2022.10.21 |
[백준 2217/javascript] 로프 (0) | 2022.10.20 |
[백준 1789/javascript] 수들의 합 (0) | 2022.10.19 |
[백준 11508/javascript] 2+1 세일 (0) | 2022.10.19 |
댓글