🌠 문제

μ†ŒμΈμˆ˜λΆ„ν•΄λž€ μ–΄λ–€ μˆ˜λ₯Ό μ†Œμˆ˜λ“€μ˜ κ³±μœΌλ‘œ ν‘œν˜„ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ˜ˆλ₯Ό λ“€μ–΄ 12λ₯Ό μ†ŒμΈμˆ˜ λΆ„ν•΄ν•˜λ©΄ 2 * 2 * 3 μœΌλ‘œ λ‚˜νƒ€λ‚Ό μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 12의 μ†ŒμΈμˆ˜λŠ” 2와 3μž…λ‹ˆλ‹€. μžμ—°μˆ˜ n이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ n의 μ†ŒμΈμˆ˜λ₯Ό μ˜€λ¦„μ°¨μˆœμœΌλ‘œ λ‹΄μ€ λ°°μ—΄μ„ returnν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

🌠 μ œν•œμ‚¬ν•­

  • 2 ≤ n ≤ 10,000

🌠 μž…μΆœλ ₯  예

n result
12 [2, 3]
17 [17]
420 [2, 3, 5, 7]

🌠 μž…μΆœλ ₯ 예 μ„€λͺ…

μž…μΆœλ ₯ 예 #1

  • 12λ₯Ό μ†ŒμΈμˆ˜λΆ„ν•΄ν•˜λ©΄ 2 * 2 * 3 μž…λ‹ˆλ‹€. λ”°λΌμ„œ [2, 3]을 returnν•©λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #2

  • 17은 μ†Œμˆ˜μž…λ‹ˆλ‹€. λ”°λΌμ„œ [17]을 return ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #3

  • 420을 μ†ŒμΈμˆ˜λΆ„ν•΄ν•˜λ©΄ 2 * 2 * 3 * 5 * 7 μž…λ‹ˆλ‹€. λ”°λΌμ„œ [2, 3, 5, 7]을 returnν•©λ‹ˆλ‹€.

🧞 풀이

function solution(n) {
    // 정닡을 담을 λ°°μ—΄ μ„ μ–Έ
    let answer = [];
    // μ†ŒμΈμˆ˜ λΆ„ν•΄, μ•½μˆ˜ 2λΆ€ν„° μ‹œμž‘
    let i = 2;
    
    while (n != 1) {
        // λ‚˜λˆ  떨어지면 ν•΄λ‹Ή μˆ˜λŠ” μ•½μˆ˜
        if (n % i == 0) {
            answer.push(i)
            // ν•΄λ‹Ή μ•½μˆ˜λ‘œ λ‚˜λˆ  λ–¨μ–΄μ§ˆ λ•ŒκΉŒμ§€ 반볡
            while (n % i == 0) {
                n = n / i; 
            }
        }
        i ++;
    }
    return answer;
}

+ Recent posts