티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/12934

 

코딩테스트 연습 - 정수 제곱근 판별

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함�

programmers.co.kr

 

[문제 풀이]

 

1. 주어진 수의 제곱근의 값을 구한다.

2. 제곱근의 정수 부분과 제곱근의 차이가 0이면 해당 수의 제곱근은 정수임을 알 수 있다.

 

[소스 코드]

 

public class IntegerSquareRootDiscrimination {
    private static final double EPSILON = Double.longBitsToDouble(971L << 52);

    public static void main(String[] args) {
        long n = 5;

        System.out.println(solution(n));
    }

    private static long solution(long n) {
        int number = (int) Math.sqrt(n);

        if (Math.abs(number - Math.sqrt(n)) < EPSILON) {
            long nextNumber = number + 1;
            return nextNumber * nextNumber;
        }

        return -1;
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함