본문 바로가기
내일배움캠프/Daily Routine (알고리즘)

[내일배움캠프] 알고리즘 Daily Routine 19. 정수 제곱근 판별

by TIP__ 2024. 8. 28.

안녕하세요.
19회차 과제 "정수 제곱근 판별"입니다.

문제 설명

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

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

제한 사항

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

풀이

class Solution {

       public long solution(long n) {

              long answer = 0;

              long cnt = 0;

              for (long i=2; i<n;i++){

                     if(i*i == n){

                            cnt = i+1;

                            answer = (long)(cnt*cnt);

                            break;

                     } else {

                            answer = -1;

                     }

              }

       return answer;

       }

}

 -. 조금 무식하게 푼 게 아닐까 싶네요.

 -. i * i = n 일 경우 i+1을 재곱하고 아닌 경우 -1을 출력합니다.

 

저처럼 처음해보시는 분들에게 이 글이 조금이나마 도움이 되었으면 좋겠습니다.

댓글