https://programmers.co.kr/learn/courses/30/lessons/12934
나의 풀이
0.03ms
class Solution {
public long solution(long n) {
double sqrt = Math.sqrt(n);
long i = (long)sqrt;
if (sqrt - i == 0)
return (i + 1) * (i + 1);
else
return -1;
}
}
Math.sqrt(n) 를 사용하여 제곱근을 구함(long)을 하여 정수부 추출다른 사람의 풀이
0.3ms (조금 더 느림)
class Solution {
public long solution(long n) {
double sqrt = Math.sqrt(n);
return Math.floor(sqrt) == sqrt ? (long)Math.pow(sqrt+1, 2) : -1;
}
}
Math.floor(sqrt) == sqrt로 정수의 제곱근을 판별