코드문제풀이/JAVA

[자바] 제곱근 판별

똥쟁이핑크 2023. 8. 18. 15:03

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

 

프로그래머스

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

programmers.co.kr

 

문제설명

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

 

제한사항

  • n은 1이상, 50000000000000 이하인 양의 정수입니다.

 

나의 문제 풀이

1) 제곱근 판별을 위해 입력받은 n을 Math 함수에 있는 sqrt에 넣어 제곱근을 구했다.

2) if 문을 사용하여 제곱근끼리 곱했을 때 n이 나오면 해당하는 answer수식을 수행하고 아니면 -1을 리턴하도록 했다.

class Solution {
    public long solution(long n) {
        long answer = 0;
        long a = (long) Math.sqrt(n);
        if(a*a == n){
            answer = (a + 1) * (a + 1);
        }
        else{
            answer = -1;
        }
        return answer;
    }
}