Hayden's Archive

[알고리즘] 프로그래머스 : 정수 제곱근 판별 본문

Algorithm

[알고리즘] 프로그래머스 : 정수 제곱근 판별

_hayden 2020. 5. 15. 16:32

알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12934

 

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

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

programmers.co.kr

 


내가 작성한 코드

먼저 Math.sqrt() 메소드를 활용하여 n의 제곱근을 구해서 int형과 double형이 일치하는지 확인했다. 제곱근이 정수라면 두 타입이 서로 값이 일치할 것이기 때문이다. 그리고 Math.pow()를 사용해서 제곱근+1을 제곱한 값을 구했고 long형으로 캐스팅했다. 

새삼 느끼는 라이브러리의 간편함!

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

      if (Math.sqrt(n) == (int)Math.sqrt(n)){
          answer = (long)Math.pow(Math.sqrt(n)+1, 2);
      }else {
          answer = -1;
      }

      return answer;
  }
}

 

관련 : 자바 거듭제곱 Math.pow(), 제곱근 Math.sqrt() https://blog.naver.com/scyan2011/221656914043