lv.1 정수 제곱근 판별

서현우·2022년 5월 7일
0

알고리즘 풀이

목록 보기
26/31

문제 설명

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

초기코드

class Solution {
    public long solution(long n) {
        long answer = 0;
        return answer;
    }
}

내 풀이

//매개변수 n의 제곱근을 double d = Math.sqrt(n)으로 구해서
//삼항연산자로 (long)d가 d인지 계산

class Solution {
    public long solution(long n) {
        long answer = 0;
        double d = Math.sqrt(n);
        answer = Math.sqrt(n) == (long)d ? (long)((d+1)*(d+1)) : -1L; 
        return answer;
    }
}

다른 풀이

//Math.pow 사용

class Solution {
  public long solution(long n) {

    double i = Math.sqrt(n);

    return Math.floor(i) == i ? (long) Math.pow(i + 1, 2) : -1;
  }
}
profile
안녕하세요!!

0개의 댓글