정수 제곱근 판별

구해야 하는 것

  • 주어진 정수 n이 x의 제곱근인지 아닌지 구하라

주어진 자료

  • 1 <= n <= 50,000,000,000,000
  • n이 x의 제곱근이면 x + 1의 제곱 리턴, 그렇지 않으면 -1 리턴

계획

  1. 1부터 n까지의 수 중 제곱해서 n과 같아지는 수가 있으면 (x + 1)의 제곱을 반환한다.
  2. 제곱한 수가 n보다 커지면 -1을 반환한다.

실행

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