๐ŸŒ  ๋ฌธ์ œ

์ •์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, n์˜ ์•ฝ์ˆ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋‹ด์€ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • 1 ≤ n ≤ 10,000

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

n result
24 [1, 2, 3, 4, 6, 8, 12, 24]
29 [1, 29]

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • 24์˜ ์•ฝ์ˆ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋‹ด์€ ๋ฐฐ์—ด [1, 2, 3, 4, 6, 8, 12, 24]๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • 29์˜ ์•ฝ์ˆ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋‹ด์€ ๋ฐฐ์—ด [1, 29]๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(n) {
    // ์šฐ์„  ์•ฝ์ˆ˜๋Š” ํ•ญ์ƒ ๋‘ ๊ฐœ์”ฉ ํ•œ ์Œ์ž„
    // ๋”ฐ๋ผ์„œ n์˜ ์ œ๊ณฑ๊ทผ๊นŒ์ง€๋งŒ ํƒ์ƒ‰ํ•ด๋„ ๋‹ค ์ฐพ์„ ์ˆ˜ ์žˆ์Œ
    let sqrt_n = parseInt(Math.sqrt(n));
    let answer = [1, n];
    for (let i = 2; i <= sqrt_n; i++) {
        if (n % i == 0) {
            answer.push(i);
            answer.push(n / i);
        }
    }
    
    // ์ œ๊ณฑ๊ทผ์ด ๊ณง ์•ฝ์ˆ˜์ผ ๋•Œ, 
    if (Math.sqrt(n) === sqrt_n) {
        answer.pop();
    }
    
    return answer.sort((a, b) => (a - b));
}

+ Recent posts