πŸ“š μ½”λ”©ν…ŒμŠ€νŠΈ/λ°±μ€€ & ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

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

deep_lee 2022. 10. 14. 13:28

문제 μ„€λͺ…

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

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

 

μž…μΆœλ ₯ 예

 

121 144
3 -1

for문으둜 i*iκ°€ n이 λ λ•ŒκΉŒμ§€ λŒλ©΄μ„œ, nκ³Ό 같은 값을 κ°€μ§€λŠ” μˆ˜κ°€ μžˆλ‹€λ©΄

μ œκ³±κ·Όμ΄λ‹ˆ answer에 ν•΄λ‹Ήν•˜λŠ” return 값을 λ„£μ–΄μ£Όκ³ 

같은 값을 κ°€μ§€λŠ” μˆ˜κ°€ μ—†λ‹€λ©΄ -1을 λ„£μ–΄ λ°˜ν™˜ν•΄μ£Όμ–΄μ—ˆλ‹€.


 

class Solution {
    public long solution(long n){
        long answer = 0;
        for (long i = 1; i * i <= n; i++) {
            if (i * i == n) {
                answer = (i + 1) * (i + 1);
                break;
            }
            else answer=-1;
        }   
        return answer;
    }
}