개?발/프로그래머스

정수 제곱근 판별 (Java - Math.sqrt)

YUEIC 2024. 7. 31. 15:59

 

1.주어진 매개변수가 '정수'의 제곱인지 아닌지 판별

2.참이라면 매개변수의 (제곱근 + 1) * (제곱근 + 1)을 반환

2-1.거짓이라면 -1을 반환

 

Java에서 변수의 제곱근을 구하는 Math클래스의 sqrt를 사용하면 된다.

Math.sqrt(double a)

단, 반환형이 double이므로 다른 형의 변수에 저장할 때는 형변환이 필요하다.

 

위의 문제에서는 단순히 제곱을 반환하기 때문에 (제곱근 + 1) * (제곱근 + 1)로 계산하면 되지만 그 이상의 제곱에는

Math.pow(double a, double, b)를 사용하면 쉽다. (a를 b만큼 제곱한다)

이또한 반환형은 double이다.

 

    public long solution(long n) {
        long answer = 0;

        double a = Math.sqrt(n);    //매개변수의 제곱근을 a에 저장

        if(a % 1 == 0){             //1로 나눴을 때 소수점이 남지 않으면 정수
            //answer = (long)((a+1) * (a+1));   //단순 제곱을 구하는 식
            answer = (long)(Math.pow((a+1), 2));    //Math클래스를 이용한 제곱을 구하는 식
        }else{
            answer = -1;
        }

        return answer;
    }

 

 

'개?발 > 프로그래머스' 카테고리의 다른 글

나머지가 1이 되는 수 찾기 (Java)  (0) 2024.07.31
짝수와 홀수 (Java)  (0) 2024.07.31
자연수 뒤집어 배열로 만들기(Java)  (0) 2024.07.30
자릿수 더하기 (Java)  (0) 2024.07.27
문자열 내 p와 y의 개수  (0) 2024.07.05