반응형
- 첫 풀이 및 정답풀이
이 문제는 Math 클래스에서 제공하는 특정 정수의 제곱근을 반환하는 sqrt() 메서드와 제곱 값을 반환하는 pow() 메서드를 활용하면 간단하게 풀 수 있다.
class Solution {
public long solution(long n) {
// 1. n의 제곱근, 명시적 형변환 필요.
long sqrt_n = (long)Math.sqrt(n);
// 2. n이 양의 정수 sqrt_n의 제곱과 같다면, sqrt_n +1 ^ 2를 반환하고 아니면 -1을 반환.
return (long)Math.pow(sqrt_n,2) == n ? (long)Math.pow(sqrt_n+1,2) : -1;
}
}
double 타입으로 반환되는 Math.sqrt()메서드의 결괏값을 제곱(^2)한 제곱 값 == n이라면, 앞서 구한 제곱근에 +1 후 제곱한 값을 반환하며 그 외는 -1을 반환한다.
(ex. 예제 2에 3의 경우는 sqrt() 결과값이 1이 나오므로 1 ^2!= 3이기 때문에 -1을 반환한다.)
반응형