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

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

[์•Œ๊ณ ๋ฆฌ์ฆ˜ || ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ง์น ํ•˜๊ธฐ

728x90

๊ฐˆ ์ˆ˜๋ก ์‹œ๊ฐ„์ด ์—„์ฒญ ๊ฑธ๋ฆฌ๋Š”๋ฐ.. 

๊ธฐ๋ถ„ํƒ“์ธ๊ฐ€....

์ „์— ๋น„์Šทํ•œ ๋ฌธ์ œ ํ’€์—ˆ๋˜๊ฑฐ ๊ฐ™์€๋ฐ, 

ํ’€๋ฉด์„œ ์—„์ฒญ ํ—ท๊ฐˆ๋ ค์„œ ์• ๋จน์—ˆ๋‹ค... 

ํ’€ ์ˆ˜ ์žˆ์„ ๊ฑฐ ๊ฐ™์€๋ฐ ์ž˜ ์•ˆ๋ผ์„œ ์˜ค๋ž˜ ์žก๊ณ  ์žˆ์—ˆ๋‹ค.

(์˜ค์ „์— 2์‹œ๊ฐ„ ๋ณด๊ณ  ์˜คํ›„์— 1์‹œ๊ฐ„ ๊ฑธ๋ ค์„œ ํ’€์–ด๋ƒˆ๋‹ค,)

 

function solution(n, m, sections) {
    let allSection = new Array(n + 1).fill(0);
    Array.from(sections, x => allSection[x] = -1);

    let count = 0;
    sections.map(s => {
        if (allSection[s] === -1) {
            count++;
            for (let i = s; i < s + m; i++) {
                allSection[i] += 1;
            };
        }
    })
    return count;
}

 

ํ›„. ์ฒ˜์Œ์—” m ๋งŒํผ n ์˜ ๊ตฌ๊ฐ„์„ ๋‚˜๋ˆ ์„œ ํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, ๋”ฑ๋–จ์–ด์ง€์ง€ ์•Š๋Š” ๋ถ€๋ถ„๋„ ์žˆ๊ณ  ํ•ด์„œ ๋” ํ—ท๊ฐˆ๋ ธ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 

๋จผ์ € n ์˜ ๊ฐœ์ˆ˜ + 1 ๋งŒํผ 0์ด ๋“ค์–ด์žˆ๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค.

๊ทธ๋ฆฌ๊ณ  from ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด section ์— ๋“ค์–ด์žˆ๋Š” ๊ณณ, ์ฆ‰ ํŽ˜์ธํŠธ๊ฐ€ ์น ํ•ด์ ธ์•ผ ํ•˜๋Š” ๊ตฌ๊ฐ„์€ -1 ๋กœ ๋ฐ”๊ฟ”์คฌ๋‹ค.

 

๊ทธ๋Ÿผ ์˜ˆ์‹œ 1 ์˜ ๊ฒฝ์šฐ

 

[
  0,  
  0, -1, -1, 0,
  0, -1,  0,  0
]

์ด๋Ÿฐ ๋ชจ์–‘์˜ ๋ฐฐ์—ด์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.

 

sections ๋ฅผ map ์„ ์ด์šฉํ•ด ํŽ˜์ธํŠธ๋ฅผ ์น ํ•ด๋ณด์ž.

 

section ์ฆ‰, ์‹œ์ž‘ํ•˜๋Š” ๊ณณ์ด -1 ์ธ ๊ฒฝ์šฐ์—๋งŒ ํŽ˜์ธํŠธ๋ฅผ ์น ํ•œ๋‹ค.

=> index 2๊ฐ€ -1 ์ด๋ฏ€๋กœ => for ๋ฌธ์œผ๋กœ 2, 3, 4, 5 ๊ตฌ๊ฐ„์ด ์น ํ•ด์ง„๋‹ค.

=> index 3 ์€ 0 ์ด ๋˜์—ˆ์œผ๋ฏ€๋กœ ๊ฑด๋„ˆ๋›ด๋‹ค.

=> index 6 d์€ -1 ์ด๋ฏ€๋กœ ํŽ˜์ธํŠธ๋ฅผ ์น ํ•œ๋‹ค.

for ๋ฌธ์ด ์ž‘๋™ํ•  ๋•Œ๋งˆ๋‹ค count ๋ฅผ ์„ธ์–ด์ค€๋‹ค.

 

์น ํ•  ์นธ์ด ์žˆ์„ ๋•Œ๋งŒ for ๋ฌธ์ด ๋Œ๊ณ , count ์— +1 ์„ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์—, ์ตœ์†Œํ•œ์˜ count ๊ฐ€ ๊ตฌํ•ด์ง„๋‹ค.

n ์˜ ๋ฒ”์œ„๊ฐ€ 10๋งŒ๊ฐœ์ธ๊ฑธ ๊ฐ์•ˆํ•˜๋ฉด ์†๋„๋„ ๋งŒ์กฑ์Šค๋Ÿฝ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•