본문 바로가기
Coding Test

231004 제곱수 판별하기 - Level 0

by mmm- 2023. 10. 4.

문제 설명

어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
 

제한사항

  • 1 ≤ n ≤ 1,000,000

 

입출력 예

 

입출력 설명

입출력 예 #1

  • 144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.

입출력 예 #2

  • 976은 제곱수가 아닙니다. 따라서 2를 return합니다.

코드

import java.lang.*;

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        int num = (int)Math.sqrt(n);
        answer = (n == num*num) ? 1 : 2;
        
        return answer;
    }
}

 

풀이

sqrt()를 이용해 n의 제곱근을 구해 변수 num에 할당해준다. 그리고 n과 num의 제곱이 같다면 answer에 1을 저장하고, 아니라면 2를 저장한다.


다른 코드와 풀이

아래의 코드는 다른 사람들이 작성한 것들로, 내 코드와 비교, 참고하기 위해 가져왔다.

class Solution {
    public int solution(int n) {
        if (n % Math.sqrt(n) == 0) {
            return 1;
        } else {
            return 2;
        }
    }
}

n을 n의 제곱근으로 나누었을 때 나머지가 0이면 1을 리턴하고, 그렇지 않으면 2를 리턴한다.