[알고리즘과 자료구조] JAVA - 정수 제곱근 판별

가이드문구

문제 설명

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.

n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.


제한 사항

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


문제풀이

  1. import java.util.*;
  2. class Solution {
  3. public long solution(long n) {
  4. long answer = 0;
  5. int dec = (int) Math.sqrt(n); // 제곱근 구하는 함수
  6. // 제곱근의 제곱이 n과 같으면
  7. answer = Double.valueOf(Math.pow( (dec), 2 )).longValue() == n ?
  8. // 제곱근 +1의 제곱을 리턴하고
  9. Double.valueOf(Math.pow( (dec+1), 2 )).longValue() :
  10. // 양의 정수 제곱이 아니면 -1을 리턴한다.
  11. Long.valueOf(-1);
  12. return answer;
  13. }
  14. }



작성자 소개
초이 프로필
WrapUp 블로거

초이

반려견을 좋아하고, 차를 좋아하고, 여행을 좋아하고, 맛집을 찾아 즐기는 웹 개발자 입니다^^