Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- K_Digital Training
- 프로그래머스 K_Digital Training
- useEffect return
- 프로그래머스 데브코스 프론트엔드 TIL
- TypeScript 문법 소개
- 모던 자바스크립트 TIL
- 백준 js
- Frontend Roadmap
- react 프로젝트 리팩토링
- frontend roadmap study
- 모던 javascript Deep Dive
- 머쓱이
- 프로그래머스 데브코스 프론트엔드
- Vue3
- 인프런 자바스크립트 알고리즘 문제풀이
- 투포인터알고리즘 js
- 프로그래머스 K_Digital Training 프론트엔드
- 모던 자바스크립트 Deep Dive TIL
- Vue3 Router
- 우테캠 회고록
- KDT 프로그래머스 데브코스 프론트엔드
- 백준 node.js
- 모던 자바스크립트 딥다이브
- 리팩토링 회고
- react customHook 예시
- 프로그래머스 데브코스
- 개발자 특강
- KDT 프로그래머스
- 모던 자바스크립트 Deep Dive
- useRef 지역 변수
Archives
- Today
- Total
프론트엔드 개발자의 기록 공간
[백준 node.js] 1449번_수리공 항승 본문
백준 그리디 알고리즘 1449번_수리공 항승
난이도 : 실버III
문제 설명
입출력
또다른 입출력 예시:
3 3
4 5 9
답 : 2
7 4
1 2 3 4 10 15 20
답 : 4
문제 풀이 : 좌우 0.5 간격때문에 무지 헷갈렸다. 하지만 그냥 테이프의 길이(L) -1 이라고 생각하면 훨씬 편하다.
구멍난 위치를 기준으로 테이프를 붙이면 구멍난 위치 + 테이프의 길이 -1 만큼이 테이프가 붙여진 길이가 된다.(이를 fix범위라고 지칭) 즉, 테이프가 붙여진 길이안에 포함되어있는 구멍들은 자동으로 수리가 된 셈이다.
이 방식을 이용해서 풀면된다.
우선 구멍난 위치를 순차적으로 해결하기 위해 정렬을 해준다.
이 후, 반복문을 통해 fix범위보다 큰 경우(테이프의 범위를 벗어난 경우) 새 테이프를 추가하여 붙인뒤,
fix 범위를 다시 재설정해주면된다.
//실버3 수리공 항승
function solution(N, L, list) {
//구멍난 위치순으로 정렬
list.sort(function(a,b){
return a-b;
})
//구멍난 위치부터 테이프로 고칠수있는 범위
let fix = 0;
let cnt = 0;
for(let i=0; i<N; i++){
// fix보다 작거나 같은 구멍난 위치는 하나의 테이프로 해결가능
if(fix < list[i]){
//하나의 테이프로 고칠수 있는 범위로 넘어가면
//새 테이프가 필요하다.
cnt += 1;
fix = list[i] + L -1;
}
}
console.log(cnt);
}
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on("line", function (line) {
//여러줄 입력
input.push(line)
}).on("close", function () {
let tmp = input[0].split(" ").map((el) => parseInt(el));
let N = tmp[0]; //구멍난 개수
let L = tmp[1] //테이프 길이
let list = input[1].split(' ').map((el) => parseInt(el));
solution(N, L, list);
process.exit();
});
728x90
'알고리즘_JS > 백준_Greedy' 카테고리의 다른 글
[백준 node.js] 2847번_게임을 만든 동준이 (0) | 2021.01.17 |
---|---|
[백준 node.js] 1339번_단어 수학 (0) | 2020.12.30 |
[백준 node.js] 1783번_병든 나이트 (0) | 2020.12.29 |
[백준 node.js] 2437번_저울 (0) | 2020.12.28 |
[백준 node.js] 4796번_캠핑 (2) | 2020.12.27 |
Comments