사용한 메소드 → java.lang.Math 클래스의 메소드
Math 클래스가 제공하는 메소드는 모두 정적이므로 Import나 Math클래스 선언 없이 바로 사용 가능하다.
Math.pow(n,2) → 제곱 연산하기
java.lang.Math 클래스의 메소드이며, double 형의 파라미터 a와 b를 받으면 double형 a의 b 제곱을 반환한다.
Math.sqrt(n) → 제곱근 구하기
→ 입력값과 출력값 모두 double형이다.
public class Solution {
public long solution(long n) {
if (Math.pow((int)Math.sqrt(n),2)==n) {
return (long) Math.pow(Math.sqrt(n)+1,2);
}
return -1;
}
}
(int)Math.sqrt(n)을 사용하여 int로 캐스팅하는 이유는 주어진 숫자 n 이 완전제곱수인지 여부를 확인하기 위해서입니다.
즉, n이 완전 제곱수이면 n의 제곱근은 정수 값이 됩니다. 제곱근을 정수로 캐스트함으로써 본질적으로 가장 가까운 정수 값으로 내림합니다.
그런 다음 Math.pow((int)Math.sqrt(n),2)를 사용하여 이 정수 값의 제곱을 계산합니다. 이 값이 n과 같으면 n이 완전제곱수임을 알 수 있습니다.
이 경우 함수는 다음 완전 제곱 값 (long) Math를 반환합니다. pow(Math.sqrt(n)+1,2). 그렇지 않고 n이 완전 제곱수가 아닌 경우 함수는 -1을 반환합니다.
'Coding Test' 카테고리의 다른 글
숫자 중복 확인 (0) | 2023.04.18 |
---|