728x90
์ฌ์ค ์ด๊ฑด ๋พฐ์กฑํ ์๊ฐ ์๊ฐ ์๋์ ๋ค๋ฅธ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ๋ค.
function solution(lines) {
var answer = 0;
let lineMap = new Array(200); // ์ ๋ถ๋ค์ด ๋์ผ ๊ณต๊ฐ
lineMap.fill(0);
for (let i = 0; i < 3; i++) {
let left = lines[i][0];
let right = lines[i][1];
for (let j = left; j < right; j++) {
lineMap[j + 100] += 1;
}
}
for (let i in lineMap) {
if (lineMap[i] > 1) {
answer += 1;
}
}
return answer;
}
์ ๋ถ๋ค์ด ๋์ผ ๊ณต๊ฐ์ ๋ง๋ จํด,
ํด๋น๋๋ ๋ฒ์์ 1์ฉ ๋ํด์ฃผ๊ณ ,
๋์ค์ 1 ์ด์์ธ ์นธ๋ค์ ๊ฒน์น ๊ณต๊ฐ์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์,
๊ทธ ๋ถ๋ถ์ด ๋ช ์นธ์ธ์ง ์ธ์ด์ฃผ๋ฉด ๋๋ค.
์ด๊ฑด ํต๊ณผ ๋ชปํ ๋ฐฉ์์ธ๋ฐ,
function solution(lines) {
const Lines = lines.sort((a, b) => a[0] - b[0]);
console.log(Lines)
let overlap = [];
if (Lines[0][0] <= Lines[1][0] && Lines[1][0] < Lines[0][1]) {
overlap.push([Lines[1][0], Math.min(Lines[0][1], Lines[1][1])])
}
if (Lines[1][0] <= Lines[2][0] && Lines[2][0] < Lines[1][1]) {
overlap.push([Lines[2][0], Math.min(Lines[1][1], Lines[2][1])])
}
console.log(overlap);
const min = Math.min(...overlap.map(v => v[0]));
const max = Math.max(...overlap.map(v => v[1]));
console.log(overlap.length === 0 ? 0 : (max - min));
return overlap.length === 0 ? 0 : (max - min);
}
๊ฒน์น๋ ๋ถ๋ถ์ด ์๋ค๋ ๊ฒ = ์์ํ๋ ์๊ฐ ์ด์ ์๋ค์ ์ฌ์ด์ ์กด์ฌํ๋ค๋ ๊ฑธ ๋ชจํฐ๋ธ๋ก ๊ตฌํ๋ค.
ํ ์คํธ ์ผ์ด์ค๋ ํต๊ณผํ์ง๋ง,
solution([[0, 8], [0, 2], [6, 8]]);
์ด๋ฐ ๊ฒฝ์ฐ๋ ๊ฐ๋ ค๋ด์ง ๋ชปํ๋ค.
์ญ์ ๋ค๋ฅด๊ฒ ์๊ฐํ๋ ๋ฒ์ ๋ฐฐ์ฐ๋๊ฒ ์ค์ํ๋ค!
728x90
๋ฐ์ํ