https://programmers.co.kr/learn/courses/30/lessons/12934

 

코딩테스트 연습 - 정수 제곱근 판별

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

programmers.co.kr

 

 

문제 분석

- Math의 제곱근을 구할 수 있는 sqrt함수를 사용하여 입력받은 숫자가 어떤 수의 양의 제곱이라면 어떤 수에 1을 더하고 제곱하여 반환한다.

- 어떤 수의 양의 제곱이 아니라면 -1을 반환한다.

 

 

문제 풀이

1. Math.sqrt를 사용하여 제곱근을 구하고 해당 숫자를 1로 나누어 나머지가 0인 경우 양의 제곱근이기때문에 구한 제곱근에 1을 더하고 다시 제곱을 구한다.

2. 양의 제곱근이 아닌 경우 answer에 -1을 넣고 출력한다.

import java.lang.Math;

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

 

 

https://github.com/SOEUN2/Algorithm