본문 바로가기

Programmers

[JAVA] Lv.1 정수 제곱근 판별

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

정수 제곱근 판별

정수 n이 어떤 양의 정수 x의 제곱이면 x+1의 제곱을 리턴, 제곱이 아니라면 -1을 리턴하는 문제입니다

 

 

풀이

 

1. Math.sqrt 함수로 n의 제곱근 a를 구한다

2. Math.floor 함수로 소수점을 버려 정수인지 판단한다

3. 정수이면 Math.pow 함수로 a+1의 제곱을, 정수가 아니면 -1을 반환한다

 

import java.util.*;

class Solution {
    public long solution(double n) {
        double a = 0;
        
        a = Math.sqrt(n);
        if (a == Math.floor(a)) {
            return (long)Math.pow(a+1, 2);
        }
        return -1;
    }
}