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 | 29 | 30 |
Tags
- KDT 프로그래머스 데브코스 프론트엔드
- 프로그래머스 K_Digital Training
- 모던 자바스크립트 Deep Dive
- 모던 javascript Deep Dive
- 프로그래머스 데브코스 프론트엔드
- 프로그래머스 데브코스
- react 프로젝트 리팩토링
- Frontend Roadmap
- 프로그래머스 데브코스 프론트엔드 TIL
- 머쓱이
- 백준 js
- Vue3 Router
- TypeScript 문법 소개
- react customHook 예시
- useRef 지역 변수
- frontend roadmap study
- 투포인터알고리즘 js
- 우테캠 회고록
- 개발자 특강
- 백준 node.js
- Vue3
- 모던 자바스크립트 TIL
- 모던 자바스크립트 딥다이브
- 프로그래머스 K_Digital Training 프론트엔드
- 모던 자바스크립트 Deep Dive TIL
- KDT 프로그래머스
- useEffect return
- 인프런 자바스크립트 알고리즘 문제풀이
- K_Digital Training
- 리팩토링 회고
Archives
- Today
- Total
프론트엔드 개발자의 기록 공간
[백준 node.js] 1931번_회의실배정 본문
백준 그리디 알고리즘 11047번_동전 0
난이도 : 실버 II
문제설명
입출력
문제 풀이 : 이 문제의 핵심은 회의 시작 시간과 끝나는 시간이 주어지는데 겹치지 않게 회의를 진행할때 몇번의 회의를 진행할 수 있는지 파악하면된다.
일단 주어진 입력을 회의가 끝나는 시간을 기준으로 정렬을 해준다. 왜냐하면 회의가 끝나야지만 다음 회의가 진행되기 때문이다.
이후 정렬된 회의 목록을 기준으로 반복문을 통해 n번째 회의 끝나는 시간과 n+1번째 회의 시작을 비교한다.
n+1이 더 크거나 같다면 회의 끝난후 다음 회의를 바로 시작할 수 있기 때문이다.
이렇게 한다면 최대 회의 개수를 파악할 수 있다.
// 실버2 회의실배정
function solution(n, list) {
//회의 끝나는 시간 기준으로 정렬
list.sort(function(a, b) {
//회의 끝나는 시간이 동일하다면 시작 시간으로 정렬
if(a[1] === b[1]){
return a[0] - b[0]
}
else{
return a[1] - b[1];
}
});
//초기 세팅
let count = 1;
let tmp = list[0][1];
//회의 시작 끝나는 시간과 시작 시간 비교
for(let i=1; i<n; i++){
if(tmp <= list[i][0]){
tmp = list[i][1];
count += 1;
}
}
console.log(count);
}
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 () {
//n명
let n = parseInt(input[0]);
//회의실 list
input = input.slice(1);
//2차원배열로 int형으로 변환
let list = [];
for(i of input){
list.push(i.split(' ').map((el) => parseInt(el)));
}
solution(n, list);
});
* js에서 정렬은 sort로만 이용하면 제대로된 정렬이 이루어지지 않는다(ASCII 문자 순서대로 정렬되기 때문에)
그래서 sort함수를 이용해 안에서 return을 이용하여 정렬을 해준다. 2차원 배열과 필요한 조건을 토대로 로직을 구성하면된다.
728x90
'알고리즘_JS > 백준_Greedy' 카테고리의 다른 글
[백준 node.js] 2217번_로프 (0) | 2020.12.25 |
---|---|
[백준 node.js] 5585번_거스름돈 (0) | 2020.12.25 |
[백준 node.js] 11047번_동전 0 (0) | 2020.12.18 |
[백준 node.js] 11399번_ATM (0) | 2020.12.18 |
[백준 node.js] 2839번_설탕 배달 (0) | 2020.12.18 |
Comments