λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μ•Œκ³ λ¦¬μ¦˜

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 1단계 : μ •μˆ˜ 제곱근 νŒλ³„

by _토맀토 2022. 11. 17.
728x90

πŸ–± ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 1단계 : μ •μˆ˜ 제곱근 νŒλ³„ πŸ–±


πŸ“– 문제 μ„€λͺ… πŸ“–

μž„μ˜μ˜ μ–‘μ˜ μ •μˆ˜ n에 λŒ€ν•΄, n이 μ–΄λ–€ μ–‘μ˜ μ •μˆ˜ x의 μ œκ³±μΈμ§€ μ•„λ‹Œμ§€ νŒλ‹¨ν•˜λ € ν•©λ‹ˆλ‹€. n이 μ–‘μ˜ μ •μˆ˜ x의 제곱이라면 x+1의 μ œκ³±μ„ λ¦¬ν„΄ν•˜κ³ , n이 μ–‘μ˜ μ •μˆ˜ x의 제곱이 μ•„λ‹ˆλΌλ©΄ -1을 λ¦¬ν„΄ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ™„μ„±ν•˜μ„Έμš”.

🧸 μ œν•œ 사항 🧸

n은 1이상, 50000000000000 μ΄ν•˜μΈ μ–‘μ˜ μ •μˆ˜μž…λ‹ˆλ‹€.

function solution(n){
    let result = 0;
    let num = Math.sqrt(n);
 
    if (num % 1 == 0){
      result = ( num + 1 ) * ( num + 1 );
    } else {
      result = -1;
    }
 
    return result;
}

// Math.sqrt(n) : n의 μ œκ³±κ·Όμ„ κ΅¬ν•˜λŠ” μˆ˜ν•™ λ©”μ„œλ“œμž…λ‹ˆλ‹€. λ§Œμ•½ μŒμˆ˜μ•Œ 경우 NaN을 λ°˜ν™˜ν•©λ‹ˆλ‹€.
// n = 121일 λ•Œ 144λ₯Ό λ°˜ν™˜ n = 3일 땐 -1 λ°˜ν™˜.

🧸 문제 풀이 🧸

1. λ³€μˆ˜λ₯Ό λ§Œλ“€μ–΄μ„œ μ œκ³±κ·Όμ„ κ΅¬ν•˜λŠ” 식을 κ°’μœΌλ‘œ λ„£μ–΄ μ€λ‹ˆλ‹€.
2. 쑰건문( μ •μˆ˜λŠ” 1둜 λ‚˜λˆ„μ—ˆμ„ 경우 항상 λ‚˜λ¨Έμ§€κ°€ 0이 λ˜λŠ” 속성을 μ΄μš©ν•΄μ„œ 주어진 μˆ«μžκ°€ μ •μˆ˜μΈμ§€ 체크 )을 톡해 λ§Œμ•½ num이 μ–‘μ˜ μ •μˆ˜μΈ 경우 num + 1의 μ œκ³±μ„ κ΅¬ν•˜μ—¬ λ³€μˆ˜μ— 값을 μ €μž₯ν•©λ‹ˆλ‹€.
3. λ§Œμ•½ 아닐 경우 -1을 λ°˜ν™˜ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.


🧸 λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이 🧸

function solution(n) {
    var answer = 0;
    let sqrt = Math.sqrt(n);
    if (sqrt % 1 !== 0) {
        answer = -1;
    } else {
        answer = Math.pow(sqrt+1,2);
    }
    return answer
}

더 효율적인 κ±° κ°™λ„€μš”! μ—¬κΈ°μ„œλŠ” powλ©”μ„œλ“œλ„ ν•¨κ»˜ μ‚¬μš©ν•΄μ€€ λ“― ν•©λ‹ˆλ‹€~!

728x90

λŒ“κΈ€


Lucky Charms Rainbow
js
html
css