본문 바로가기
Preparing Coding Test/Programmers L1

[Java] 정수 제곱근 판별

by weero 2020. 7. 27.

문제

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

 

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

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

programmers.co.kr

 

 

풀이

1. n의 제곱근 값(실수)을 temp 변수에 담는다.

2. temp와 temp의 정수를 비교한다.

   2-1. 둘의 차이 > 0

      temp는 소수점 아래 값이 있다. = n은 정수 제곱근이 존재하지 않는다.

   2-2. 둘의 차이 == 0

      n은 양의 정수인 제곱근이 존재한다.

3. n의 양의 제곱근이 존재할 경우, 제곱근+1의 제곱을 answer로 return

 

참고

1. java.lang.Math.sqrt()

- public static double sqrt(double a)

- 제곱근 계산

   - 인자가 0일 경우 : 0 return

   - 인자가 음수나 NaN(Not a Number)일 경우 : NaN return

 

2. java.lang.Math.pow()

- public static double pow(double a, double b)

- 거듭제곱 계산 (a의 b 제곱)

 

 

코드

import java.lang.*;

class Solution {
    public long solution(long n) {
        long answer = 0;
        double temp = Math.sqrt(n);
        
        if(temp - (int)temp > 0)
            answer = -1;
        else
            answer = (long)Math.pow(temp+1,2);
        
        return answer;
    }
}

'Preparing Coding Test > Programmers L1' 카테고리의 다른 글

[Java] 콜라츠 추측  (0) 2020.07.28
[Java] 짝수와 홀수  (0) 2020.07.28
[Java] 자연수 뒤집어 배열로 만들기  (0) 2020.07.27
[Java] 자릿수 더하기  (0) 2020.07.27
[Java] 이상한 문자 만들기  (0) 2020.07.23