๐ section07 - 9 - ๊ฒฐํผ์
ํผ๋ก์ฐ ์ฅ์์ ๋์์ ์กด์ฌํ๋ ์ต๋ ์ธ์์๋ฅผ ๊ตฌํ์ฌ ๊ทธ ์ธ์์ ์์ฉํ ์ ์๋ ์ฅ์๋ฅผ ๋น๋ฆฌ๋ ค๊ณ ํ๋ค. ๋ง์ฝ, ์ ๋ ฅ์ด 13 15๋ผ๋ฉด 13์ ์ ๊ฐ์ ํผ๋ก์ฐ์ฅ์ ์กด์ฌํ๊ณ 15์์๋ ์กด์ฌํ์ง ์๋๋ค. ํผ๋ก์ฐ์ฅ์ ๋์์ ์กด์ฌํ๋ ์ต๋ ์ธ์์ ์ถ๋ ฅํ๋ ๋ฌธ์ ๋ค.
์ด ๋ฌธ์ ๋ greedy
๋ก ํ ์ ์๋ ๋ฌธ์ ์ธ๋ฐ, ํ์์ค ๋ฐฐ์ ์ฒ๋ผ ์
๋ ฅ์ ์ ๋ ฌ์ ํ๋, ์ ๋ ฌ ๊ธฐ์ค์ ๊ฒฐํผ์์ ๋ฑ์ฅํ๋ ์๊ฐ(s)
, ๊ฒฐํผ์์ฅ์์ ๋๊ฐ๋ ์๊ฐ(e)
์ผ๋ก ๋๋ ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ์ ํด์ผ ํ๋ค. ์
๋ ฅ์ ํ์๋ผ์ธ ํ์์ผ๋ก ๊ทธ๋ ค๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ ๋๊ฐ์๊ฐ(e)
์ ํฌํจํ์ง ์์ผ๋ฏ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ ๋ค์ด์ค๋์๊ฐ(s)
๊ณผ ๋๊ฐ๋์๊ฐ(e)
์ด ๋์ผํ๋ฉด e
๊ฐ ๋จผ์ ์ค๊ฒ ์ค์ ํ๋ค.
- ํผ๋ก์ฐ์ ๋ฑ์ฅํ๋ ์๊ฐ๊ณผ ๋๊ฐ๋ ์๊ฐ์ ๋๋๋ค.
- ์๊ฐ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋๋ฐ ์๊ฐ์ด ๊ฐ๋ค๋ฉด ๋๊ฐ ์๊ฐ์ ๋จผ์ ์์ ์ธ์ด๋ค. (๋๊ฐ ์๊ฐ์ ์ ๊ฐ์ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ)
- ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์
s
๋ฅผ ๋ง๋๋ฉดcnt++
์ ํด์ฃผ๊ณ ,e
๋ฅผ ๋ง๋๋ฉดcnt--
๋ฅผ ํด์ค๋ค. cnt
์ ์ต๋๊ฐ์ ๊ฐฑ์ ํ๋ค.
์ฌ๋ด์ด์ง๋ง, ๋ฌธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ์ผ๋ฉด charCodeAt()
ํจ์๋ฅผ ์ฌ์ฉํด ๋น๊ต ๋ฌธ์๋ฅผ ASCII
์ฝ๋๋ก ๋ฐ๊พธ์ด ์ค ๋ค์, ๊ฐ์ ๋น๊ตํด์ฃผ๋ฉด ๋๋ค. ์ฌ๊ธฐ์ s
์ ASCII
์ฝ๋๋ 115
์ด๊ณ , e
๋ 101
์ด๋ฏ๋ก e
๊ฐ ๋ ์๋ค.
let n = 5;
let arr = [[14, 18], [12, 15], [15, 20], [20, 30], [5, 14]];
console.log(solution(n, arr));
function solution(n, arr) {
let tL = [];
for (let x of arr) {
tL.push([x[0], "s"]);
tL.push([x[1], "e"]);
}
tL.sort((a, b) => {
if (a[0] === b[0]) return a[1].charCodeAt() - b[1].charCodeAt();
else return a[0] - b[0];
});
let cnt = 0;
let answer = 0;
for (let x of tL) {
if (x[1] === "s") cnt++;
else cnt--;
answer = Math.max(answer, cnt);
}
return answer;
}
๋๊ธ