function solution(times) {
let answer = 0;
for (let i = 0; i < 72; i++) {
let cnt = 0;
for (let x of times) {
if (x[0] <= i && i < x[1]) cnt++;
}
answer = Math.max(answer, cnt);
}
return answer;
}
let arr = [
[14, 18],
[12, 15],
[15, 20],
[20, 30],
[5, 14]
];
console.log(solution(arr));
코드는 간결하지만 사실상 Brute Force로 푼 것이나 마찬가지..
function solution(times) {
let order = [];
let answer = Number.MIN_SAFE_INTEGER;
let cnt = 0;
for (let x of arr) {
order.push([x[0], 's']);
order.push([x[1], 'e']);
}
order.sort((a, b) => {
if (a[0] == b[0]) return a[1].charCodeAt() - b[1].charCodeAt();
else return a[0] - b[0];
});
for (let x of order) {
if (x[1] === 's') cnt++;
else cnt--;
answer = Math.max(answer, cnt);
}
return answer;
}
let arr = [
[14, 18],
[12, 15],
[15, 20],
[20, 30],
[5, 14]
];
console.log(solution(arr));
이렇게 미리
정렬
을 하는 idea 가 참 신기하다.
미리 예시로 시뮬레이션을 많이 돌려봐야겠다