본문 바로가기
Log/Coding Test

Day85_Programmers Lv.1 '정수 제곱근 판별' Java

by uxia 2023. 12. 19.

프로그래머스 Lv.1 '정수 제곱근 판별' 자바

 

Q. 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 한다.

n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고,

n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하시오.

 

class Solution {
    public long solution(long n) {
        Double x = Math.sqrt(n);
        
        if (x == x.intValue()) {
            return (long) Math.pow(x + 1, 2);
        } else {
            return -1;
        }
    }
}

 

Math.sqrt()는 제곱근(루트)을 계산하는 메서드로,

n의 제곱근을 구해 x에 넣는다.

 

intValue()는 해당 숫자 타입을 int로 변환하는 메서드로,

제곱근 x가 x를 int로 변환한 값과 같으면

거듭제곱을 계산하는 Math.pow()로 x+1의 2승을 반환하고

다르면 -1을 반환하도록 한다.