ν”„μ—” 곡뢀/🫧 μ•Œκ³ λ¦¬μ¦˜ 곡뢀

[μ•Œκ³ λ¦¬μ¦˜ || ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 숫자의 ν‘œν˜„

λ˜μžπŸ‹ 2023. 8. 28. 16:36
728x90

 

function solution(n) {
    let count = 1;
    if (n == 1) {return 1}
    for (let i = 1; i <= Math.ceil(n / 2); i++) {
        let sum = 0;
        let start = i;
        while (sum < n) {
            sum += start;
            if (sum === n) count++;
            start++;
        }
    }
    return count;
}

μ΄λ ‡κ²Œ μ •μ§ν•˜κ²Œ(?) ν’€μ—ˆλŠ”λ°, 

else λ₯Ό 쓰지 μ•Šμ•˜μ„ 땐 μ‹œκ°„ 초과둜 ν†΅κ³Όλ˜μ§€ λͺ»ν–ˆμ—ˆλ‹€. ???

μ•„λ‹ˆλ„€ λ‹€μ‹œ ν•΄λ³΄λ‹ˆ 톡과 λ˜λ„€.. ???

 

그리고 n 이 1 일 κ²½μš°μ—λŠ” λ°˜λ³΅λ¬Έμ„ 돌 ν•„μš”κ°€ μ—†κΈ° λ•Œλ¬Έμ— λ°”λ‘œ 1을 좜λ ₯해쀬닀.

 

 

μ˜€λŠ˜λ„ λΉ„λ‚œμ’Œ μ½”λ“œλ₯Ό μŒ₯μŒ₯ ν•΄λ³΄μž

 

function solution(n) {
    let answer = 0;
    for (let k = 1; k <= n/2 + 1; k++) 
        if ((n/k - (k-1)/2) % 1 === 0 && n/k - (k-1)/2 > 0) answer++;
    return answer;
}
ν™€μˆ˜μ˜ 경우, μ•½μˆ˜λŠ” ν™€μˆ˜ 밖에 μ•ˆλ‚˜μ˜΄. 15의 μ•½μˆ˜λŠ” 1,3,5, 15. μ•½μˆ˜λ₯Ό μ΄μš©ν•΄μ„œ μ—°μ†λœ 수의 합이 15κ°€ λ‚˜μ˜€λ„λ‘ ν•  μˆ˜λ„ 있음. 15=1+2+3+4+5 (쀑간값 3) 3x5 / 15=4+5+6 (쀑간값 5) 5x3 / 15=7+8 (μ—°μ†λœ 수) 7+8 - ν™€μˆ˜μΈ 경우 무쑰건 κ°€λŠ₯. / 15=15 / 쀑간값이 3인 경우, 쀑간값이 5인 경우, μ—°μ†λœ 수(7, 8), 15(n) ν•΄μ„œ 4개인데, 이게 곡ꡐ둭게 ν™€μˆ˜μ˜ μ•½μˆ˜ μˆ˜μ™€ κ°™μŒ. 그리고 짝수의 κ²½μš°λŠ” ν™€μˆ˜μ˜ μ—°μž₯선이라고 보면 됨. n=30인 경우, 30의 μ•½μˆ˜λŠ” 1, 2, 3, 5, 6, 10, 15, 30μž„. 30=4 + 5 + 6 + 7 + 8 (쀑간값 3의 μ—°μž₯) 2x3x5 / 30=9 + 10 + 11 (쀑간값 5의 μ—°μž₯) 2x5x3 / 30=6+7+8+9 (μ—°μ†λœ 두 수의 μ—°μž₯) 2x(7+8) / 30=30 / 결과적으둜 n의 ν™€μˆ˜ μ•½μˆ˜ 개수만 ꡬ해도 λ‹΅μ΄λž‘ κ°™μŒ.

쑰금 더 μˆ˜ν•™μ μœΌλ‘œ λ“€μ–΄κ°€λ©΄ μ΄λ ‡κ²Œ κ·œμΉ™μ„±μ΄ 보인닀고 ν•œλ‹€. 

μ‹±κΈ°λ°©κΈ° μˆ˜ν•™μ˜ 세계~

 

 

728x90
λ°˜μ‘ν˜•