๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/1931
๋ฌธ์ ํ์ด
์ด ๋ฌธ์ ๋ ์ ๋ ฌ ๊ธฐ์ค์ ํ๋ฆฝํ๋๊ฒ ํต์ฌ์ด๋ค. ์ต๋ํ์ ๋ง์ ๊ฐ์๋ฅผ ๋ฃ๊ธฐ ์ํด์๋
1. ๊ฐ์์ ๋๋๋ ์๊ฐ์ด ๋น ๋ฅธ ๊ฒ ๋ถํฐ ์ค๋ฆ์ฐจ์
2. ๊ฐ์ ๋๋๋ ์๊ฐ์ด ๊ฐ์ ๋๋ ๊ฐ์ ์๊ฐ์ด ๊ฐ์ฅ๋ฆ์ ๊ฒ ๋ถํฐ ๋ด๋ฆผ์ฐจ์ but ์์ํ๋ ์๊ฐ = ๋๋๋ ์๊ฐ ์ผ๋๋ ๋ค์ ๋ฐฐ์น ํด์ผํ๋ค.
์ ์กฐ๊ฑด๋๋ก ๋ฐฐ์ด์ ์ ๋ ฌํ ์ ์ต๋ ๊ฐ์๋ฅผ ์งํํ ์ ์๋ค. ์ฒ์์๋ ํ ์๋ฟ์ง ์๊ฒ ์ง๋ง ์ค์ค๋ก ๋ช๊ฐ์ ์ผ์ด์ค๋ฅผ ๋ง๋ค๊ณ ์งํํ๋ค ๋ณด๋ฉด ์ ์ ์กฐ๊ฑด์ผ๋ก ์ ๋ ฌํ๋์ง ๋ฐ๋ก ์ดํด ํ ์ ์๋ค.
let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
let [N, ...arr] = input;
arr = arr.map((str) => {
return str.split(" ").map((n) => Number(n));
});
arr.sort((prev, next) => {
// ๋๋๋ ์๊ฐ์ด ๊ฐ์๋
if (prev[1] === next[1]) {
// ์์์๊ฐ = ๋๋๋ ์๊ฐ์ด ๊ฐ์ ๋๋ ๋งจ๋ค๋ก ๋นผ๊ธฐ
if (prev[0] === prev[1]) {
return 1;
} else if (next[0] === next[1]) {
return -1;
}
// ์์์๊ฐ์ด ๋๋ฆด ์๋ก ์์ ๋ฐฐ์น
return next[0] - prev[0];
}
// ๋๋๋ ์๊ฐ์ด ๋น ๋ฅผ์๋ก ์์ผ๋ก ๋ฐฐ์
return prev[1] - next[1];
});
answer = 1;
let lectureEndTime = arr[0][1];
for (let i = 1; i < Number(N); ++i) {
let [startTime, endTime] = arr[i];
if (lectureEndTime <= startTime) {
++answer;
lectureEndTime = endTime;
}
}
console.log(answer);
'๐Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค[JS] > 1620๋ฒ ๋๋์ผ ํฌ์ผ๋ชฌ ๋ง์คํฐ ์ด๋ค์ (0) | 2025.01.13 |
---|---|
๋ฐฑ์ค[JS] > 7762๋ฒ ์ด์ค ์ฐ์ ์์ ํ (0) | 2025.01.12 |
๋ฐฑ์ค[node.js] > 5430๋ฒ AC (0) | 2025.01.07 |
๋ฐฑ์ค[node.js] > 9461๋ฒ ํ๋๋ฐ ์์ด (0) | 2025.01.05 |
๋ฐฑ์ค[node.js] > 11399๋ฒ ATM (0) | 2025.01.02 |