-
접근법
최대한 많은 회의의 개수를 출력 하기 위해서는, 위에 주어진 타임 테이블을 정렬 해야 한다.
1) 끝나는 시간을 기준으로 정렬 하되,
2) 만약 끝나는 시간이 같다면 시작 시간으로 정렬을 한다.
그렇게 됬을 때, 전 회의의 끝나는 시간이 다음 회의가 시작하는 시간 전에 마무리가 되면, 회의의 개수를 늘리면 문제가 해결된다.
코드
function solution() { meetings.sort((a, b) => { if (a[1] === b[1]) { return a[0] - b[0]; } return a[1] - b[1]; }); meetings.forEach((e) => { if (end <= e[0]) { count += 1; end = e[1]; } }); console.log(count); } let fs = require("fs"); let input = fs.readFileSync("/dev/stdin").toString().split("\n"); let count = 0; let end = 0; const N = +input[0]; const meetings = []; for (let i = 1; i <= N; i++) { const [start, end] = input[i].split(" "); meetings.push([+start, +end]); } solution();
'PS > 백준' 카테고리의 다른 글
[백준_1697] 숨바꼭질 ( by using JavaScript ) (0) 2021.05.28 [ 알고리즘 로드맵 ] (0) 2021.05.06 [백준_DP] 11052 카드 구매하기 ( by using javascript ) (0) 2021.04.14 [백준_1934] 최소공배수 (by using javascript) (0) 2021.04.05 [ 백준_10799 ] 쇠막대기 ( Stack, by using javascript ) (0) 2021.04.02 댓글