๐Ÿ“ ๊ฐœ๋ฐœ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐฐ์—ด์ž๋ฅด๊ธฐ


๋ฌธ์ œ ์‚ดํŽด๋ณด๊ธฐ


์œ„์— gif์—์„œ ๋ณด๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ n^2๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ ํ›„ ์ด๋ฅผ ์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•œ ๋‹ค์Œ์— left~right์˜ ์ธ๋ฑ์Šค์— ์žˆ๋Š” ์›์†Œ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค. "์™œ ์ด ๋ฌธ์ œ๊ฐ€ 2๋ ˆ๋ฒจ์ผ๊นŒ?"ํ•˜๋Š” ์˜๋ฌธ์ด ๋“ค ์ •๋„๋กœ ๊ฐ„๋‹จํ•ด ๋ณด์ด์ง€๋งŒ ์‚ฌ์‹ค์€ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค.
์ € ์นœ์ ˆํ•œ gif๋Š” ํ•จ์ •์ด๋‹ค.
์ € ์„ค๋ช…๋งŒ ๋ฏฟ๊ณ  ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด (signal: aborted (core dumped))๋ผ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค.

(signal: aborted (core dumped)) ์˜ค๋ฅ˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์˜ˆ์™ธ ์ƒํ™ฉ์— ์ง๋ฉดํ•ด ์ข…๋ฃŒ๋˜์—ˆ๊ฑฐ๋‚˜, ์‹œ์Šคํ…œ ๋ฆฌ์†Œ์Šค ๋ถ€์กฑ, ์ž˜๋ชป๋œ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค, ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋“ฑ์˜ ์ด์œ ๋กœ ๋ฐœ์ƒํ•œ๋‹ค. ์ด ๋ฌธ์ œ์—์„œ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์˜ ์‚ฌ์ด์ฆˆ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๊ฒƒ ๊ฐ™๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด, 2์ฐจ์›๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•œ๋‹ค.
์ด ๋ฌธ์ œ์˜ ์ œํ•œ์‚ฌํ•ญ์„ ์ฝ์–ด๋ณด๋ฉด n์˜ ๋ฒ”์œ„๊ฐ€ 1 <= n <= 10^7์ธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ javascript ๋ฐฐ์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋Š” 4294967296(2^32)๋ฏธ๋งŒ ์ด๊ธฐ ๋•Œ๋ฌธ์— n*n = 10^14 ํฌ๊ธฐ์˜ 1์ฐจ์› ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๋„ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
๊ฒฐ๊ตญ ๋‚จ์€ ๋ฐฉ๋ฒ•์€ left ~ right๊นŒ์ง€ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉด์„œ ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ๊ณ„์‚ฐํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

๊ตฌํ˜„ํ•˜๊ธฐ

๋ชซ๊ณผ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์„ ์ด์šฉํ•ด์„œ ๋ฐฐ์—ด์˜ ์—ด๊ณผ ํ–‰์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค

์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ํ•จ๊ป˜ ์ž์„ธํ•˜๊ฒŒ ์•Œ์•„๋ณด์ž.

์œ„์˜ ๊ทธ๋ฆผ์—์„œ 2์ฐจ์› ๋ฐฐ์—ด์„ a, ํ‰ํƒ„ํ™”๋œ ๋ฐฐ์—ด์„ b๋ผ๊ณ  ์ง€์นญํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋“ฑ์‹์ด ์„ฑ๋ฆฝํ•œ๋‹ค.(n์€ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ)

b[4] = a[โŒŠ4/nโŒ‹][4%n] = a[1][1]

๋”ฐ๋ผ์„œ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์„ ํ™œ์šฉํ•˜๋ฉด ํ‰ํƒ„ํ™”๋œ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋กœ 2์ฐจ์› ๋ฐฐ์—ด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ ์šฐ๋ฆฌ๋Š” ์ธ๋ฑ์Šค ์•ˆ์— ์–ด๋–ค ๊ฐ’์ด ๋“ค์–ด์žˆ๋Š”์ง€ ์•Œ์•„์•ผ ํ•œ๋‹ค.
์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์—๋Š” ๋ฐฐ์—ด์— ๊ฐ’์„ ์ €์žฅํ•˜์ง€ ์•Š์€ ์ฑ„ ์ธ๋ฑ์Šค๋งŒ์œผ๋กœ ๊ฐ’์„ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ด ๋ฌธ์ œ์—์„œ ๋‹ค๋ฃจ๋Š” ๋ฐฐ์—ด์€ ํŠน์ •ํ•œ ๊ทœ์น™์„ ๊ฐ–๊ณ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ’์„ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐฐ์—ด์˜ ์›์†Œ, ๋ชซ๊ณผ ๋‚˜๋จธ์ง€์˜ ๊ด€๊ณ„ ์ฐพ๊ธฐ

ํ‰ํƒ„ํ™”๋œ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ index๋ผ๊ณ  ์ง€์นญํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ˆ˜์‹ํ•ด๋‹น ์—ด์˜ ์›์†Œ
โŒŠindex/nโŒ‹ = 0โŒŠindex/nโŒ‹, โŒŠindex/nโŒ‹, โŒŠindex/nโŒ‹+2,...
โŒŠindex/nโŒ‹ = 1โŒŠindex/nโŒ‹, โŒŠindex/nโŒ‹, โŒŠindex/nโŒ‹+1,...
โŒŠindex/nโŒ‹ = 2โŒŠindex/nโŒ‹, โŒŠindex/nโŒ‹, โŒŠindex/nโŒ‹,...

๊ฐ๊ฐ ์—ด์— ๋Œ€ํ•ด ๊ธ€๋กœ ํ’€์–ด์„œ ์„ค๋ช…ํ•˜์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.
0๋ฒˆ์งธ ์—ด์„ ๋‚˜ํƒ€๋ƒ„, 0๋ฒˆ์งธ ์—ด์˜ ์›์†Œ๋Š” 1๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๊ณ , 1์ด 1๋งŒํผ ๋ฐ˜๋ณต๋œ ํ›„์— ์ˆ˜๊ฐ€ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ํ˜•ํƒœ์ž„.
1๋ฒˆ์งธ ์—ด์„ ๋‚˜ํƒ€๋ƒ„, 1๋ฒˆ์งธ ์—ด์˜ ์›์†Œ๋Š” 2๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๊ณ , 2์ด 2๋งŒํผ ๋ฐ˜๋ณต๋œ ํ›„์— ์ˆ˜๊ฐ€ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ํ˜•ํƒœ์ž„.
2๋ฒˆ์งธ ์—ด์„ ๋‚˜ํƒ€๋ƒ„, 1๋ฒˆ์งธ ์—ด์˜ ์›์†Œ๋Š” 3๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๊ณ , 3์ด 3๋งŒํผ ๋ฐ˜๋ณต๋œ ํ›„์— ์ˆ˜๊ฐ€ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ํ˜•ํƒœ์ž„.

์ด์ œ ๋‚จ์€ ๊ฒƒ์€ ์ˆ˜๊ฐ€ ๋ฐ˜๋ณต๋œ ํ›„์— ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š”์ง€์ด๋‹ค.
์œ„์— ๋‚˜์—ดํ•œ ๊ทœ์น™์„ ์ž˜ ์‚ดํŽด๋ณด๋ฉด โŒŠindex/nโŒ‹ >\= index%n์ผ ๋•Œ ๊นŒ์ง€๋Š” โŒŠindex/nโŒ‹ + 1๊ฐ€ ์›์†Œ๊ฐ’์ด ๋˜๊ณ  ์ดํ›„์—๋Š” index%n + 1์ด ์›์†Œ๊ฐ’์ด ๋˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฝ”๋“œ ๊ตฌํ˜„

function solution(n, left, right) {
    const res = [];
    for (let i = left; i <= right; i++) {
        res.push(Math.max(i % n, Math.floor(i / n)) + 1);
    }
    return res;
}

์œ„์—์„œ ๋ฐœ๊ฒฌํ•œ ๊ทœ์น™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ„์™€ ๊ฐ™์ด ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฌธ์ œ ํ›„๊ธฐ

์ฒ˜์Œ์— ๋ฌธ์ œ๋ฅผ ์ฝ์„ ๋•Œ gif ์„ค๋ช…์„ ๋ณด๊ณ  ๋†€๋ž๋‹ค.
์ด๋ ‡๊ฒŒ๋‚˜ ์นœ์ ˆํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋‹ˆ...!!
ํ•˜์ง€๋งŒ ๊ทธ ์• ๋‹ˆ๋ฉ”์ด์…˜๋Œ€๋กœ ๊ตฌํ˜„ํ–ˆ๋”๋‹ˆ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ์ฒ˜์Œ ๋ณด๋Š” (signal: aborted (core dumped))๋ผ๋Š” ์˜ค๋ฅ˜๋ฅผ ๋งž๋‹ฅ๋œจ๋ ธ๋‹ค.
๊ทธ๋ž˜์„œ ์ข€ ๋” ๊ณ ๋ฏผํ•œ ๋์— ํ•ด๊ฒฐํ–ˆ๋‹ค.
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋Š” ๋ฐ”๋กœ ํ•ด๊ฒฐํ•  ๋•Œ ๋ณด๋‹ค ํ•œ๋ฒˆ ๋‚œ๊ด€์— ๋ถ€๋”ชํž ๋•Œ ๋” ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐฐ์—ด์ž๋ฅด๊ธฐ