๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Programmers

[Javascript/PGS] Lv.2 : n^2 ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ

xxilliant 2025. 5. 8. 13:14
728x90
๋ฐ˜์‘ํ˜•

 

https://school.programmers.co.kr/learn/courses/30/lessons/87390?language=javascript#

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr


ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ ˆ๋ฒจ 2 js

 

i=0์ผ ๋•Œ, 0~n-1 : 1,2,3,4 ...
i=1์ผ ๋•Œ, n ~ 2n-1 : 2,2,3,4, ...
i=2์ผ ๋•Œ, 2n ~ 3n-1 : 3,3,3,4 ...


์œ„์—์„œ ๊ทœ์น™์„ ์ฐพ์œผ๋ฉด, i์ค„์—์„œ i๋ฒˆ์งธ๊นŒ์ง€์˜ ์ˆ˜๋Š” i+1์ด๊ณ , ๊ทธ ๋‹ค์Œ ์œ„์น˜๋ถ€ํ„ฐ๋Š” 1์”ฉ ๋Š˜์–ด๋‚œ๋‹ค.

์ด๊ฑธ ํ•œ ์ค„ ํ•œ ์ค„ ๋งˆ๋‹ค ์ ์šฉํ•ด์„œ ํ’€์—ˆ๋”๋‹ˆ...

ํ…Œ์ผ€๋Š” ๋‹ค ๋งž์•˜๋Š”๋ฐ, ์ฝ”๋“œ๋„ ๋ณต์žกํ–ˆ๊ณ  ์ œ์ถœ ์‹œ ์ ˆ๋ฐ˜ ์ •๋„ ํ‹€๋ฆฌ๊ฒŒ ๋‚˜์™”๋‹ค ๐Ÿฅน

 

1. ์ž˜๋ชป๋œ ํ’€์ด (60์ /100์ )

function solution(n, left, right) {
    let answer = [];
    let i = Math.floor(left/n);
    let j = Math.floor(right/n);
    while(i<=j){
        let tmp = left;
        for(let l=0; l<n; ++l){
            if(l!=0 && left%n==0) break;
            if(left%n<=i) answer.push(i+tmp%n+1);
            else {
                answer.push(left%n+1);
            }
            if(i==j && left==right) break;
            left++;
        }
        // console.log(answer);
        i++;
    }
    return answer;
}

 

์ œ๋Œ€๋กœ ๋œ ํ’€์ด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

๊ทœ์น™์„ ์ž˜ ์ฐพ์•„์•ผ ํ•จ ใ…œใ…œ

๊ฐ ์œ„์น˜๋ฅผ x์™€ y ์ขŒํ‘œ๋กœ ์ƒ๊ฐํ–ˆ์„ ๋•Œ, (x,y)์นธ์˜ ์ˆ˜๋Š” max(x+1, y+1)์ด๋‹ค. (์•„๋ž˜ ์ด๋ฏธ์ง€ ์ฐธ๊ณ )

์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•œ ๊ทœ์น™์ธ๋ฐ ใ…์™œ ์•ˆ๋ณด์˜€์ง€........

 

 

๋ชจ๋“  ์นธ์— ์ˆ˜๋ฅผ ์ฑ„์šฐ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ, left๋ถ€ํ„ฐ right๊นŒ์ง€๋งŒ ๊ณ„์‚ฐํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์‚ฌ๊ณ ๋Š” ๋งž์•˜์œผ๋‹ˆ

์ •๋‹ต์— ๊ทผ์ ‘ํ•œ๊ฑธ๋กœ ใ…Žใ…Ž

์ •์„ ํ’€์ด๋Œ€๋กœ ๋‹ค์‹œ ํ’€์–ด์„œ 100์  ์„ฑ๊ณต!

 

2. ์ •๋‹ต ํ’€์ดโ€ผ๏ธ

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

 

์‚ฌ์‹ค ํ’€๋ฉด์„œ ์ด๊ฒŒ ์™œ ๋ ˆ๋ฒจ 2์•ผ..๋ ˆ๋ฒจ 3 ์•„๋ƒ?๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ

๊ทธ๋ƒฅ ๋‚ด๊ฐ€ ๋ฌด์ง€ํ–ˆ๋˜ ๊ฑฐ์˜€์Œ

 

๊ทธ๋ฆฌ๊ณ  js๋Š” ๋‚˜๋ˆ—์…ˆํ•  ๋•Œ cpp๊ณผ ๋‹ค๋ฅด๊ฒŒ int ์ž๋™ ํ˜•๋ณ€ํ™˜์ด ์•ˆ๋˜๋‹ˆ๊นŒ,

๊ผญ Math.floor(๋‚ด๋ฆผ) ํ˜น์€ Math.round(๋ฐ˜์˜ฌ๋ฆผ)๋ฅผ ์จ์ค˜์•ผ ํ•œ๋‹ค!!!

 

728x90
๋ฐ˜์‘ํ˜•