본문 바로가기

Coding Test

23.3.27(정수 제곱근 판별)

사용한 메소드 → 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