๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„์—” ๊ณต๋ถ€/๐Ÿซง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Javascript] ๊ฒน์น˜๋Š” ์„ ๋ถ„์˜ ๊ธธ์ด || ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

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
๋ฐ˜์‘ํ˜•