알고리즘(Algorithm)/프로그래머스(Programmers)

[프로그래머스] 정수 제곱근 판별 - JAVA

나아가는중 2021. 11. 2. 15:58
반응형

프로그래머스 정수 제곱근 판별 - JAVA


문제 설명

  1. 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 한다.
  2. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴.

제한 사항

  1. n은 1이상, 50000000000000 이하인 양의 정수.

문제 풀이

  1. 임의의 양의 정수 n에 대해 n이 어떤 양의 정수 x의 제곱인지 판단하기 위해서, n의 제곱근을 제곱을 해준 뒤 n과 비교하면 된다.
    • Math.sqrt(n)를 통해 제곱근을 찾는다.
    • 1에서 찾은 제곱근을 Math.pow()를 사용하여 제곱한뒤 비교한다.
  2. n이 어떤 양의 정수 x의 제곱이라면, 1에서 찾은 제곱근에 1을 더한 후 제곱하여 리턴, 아닐 시 -1을 리턴.

소스 코드

class Solution {
    public long solution(long n) {        
        long sqrt = (long)Math.sqrt(n);

        if (Math.pow(sqrt, 2) == n) {
            return (long)Math.pow(sqrt + 1, 2);
        } else {
            return -1;
        }
    }
}
반응형