반응형
정답
//let input = require('fs').readFileSync('/dev/stdin').toString();
const input = require('fs').readFileSync('./input.txt').toString().trim().split('\n');
let count = Number(input.shift());
let list = [];
for(let i of input){
list.push(i.split(' ').map(n => Number(n)));
}
solution(count, list);
function solution(count, list){
list.sort(function(a, b){
//끝나는 시간이 같으면 시작 시간 오름차순 정렬
if(a[1] === b[1]) return a[0] - b[0]
else return a[1] - b[1]
});
let result = 1;
let temp = list[0][1]; //처음 회의 종료시간
for( let i=1 ; i < count; i++){
if(temp <= list[i][0]){
temp = list[i][1];
result += 1;
}
}
console.log(result);
}
풀이
끝나는 시간 순으로 정렬하고 끝나는 시간이 같다면 시작 시간을 비교해서 오름차순으로 정렬한다.
3 8
8 10
12 12
11 12
9 14
위와 같을 경우 8 10 -> 12 12 먼저 계산해버리면 11 12가 성립이 안된다.
8 10 -> 11 12-> 12 12 (성립)
그리고 처음 회의 시작시간과 끝시간을 저장해서 비교하고 그 다음부터는
회의 끝시간 - 다음 회의시작시간을 계산하고
다음 회의 끝시간과 다시 그다음 시작시간을 계산한다. (반복)
어렵다;;
반응형
'Develop > 백준 코딩테스트' 카테고리의 다른 글
백준 코딩테스트 1541 잃어버린 괄호 자바스크립트 node.js (0) | 2022.07.04 |
---|---|
백준 코딩테스트 1026 보물 자바스크립트 node.js (0) | 2022.07.01 |
백준 코딩테스트 11047 동전 자바스크립트 node.js (0) | 2022.06.29 |
백준 코딩 테스트 ATM 11399 자바스크립트 node.js (0) | 2022.06.29 |
백준 2839번 설탕배달 자바스크립트 ( node.js ) (0) | 2022.06.25 |