Contents

제곱수 판별하기 (with.Java)

   Apr 21, 2024     1 min read

“제곱수 판별하기” 문제에 대하여 알아본 글입니다.

코딩 테스트 문제를 풀며, 풀었던 문제에 대한 회고와 다른 풀이 방법을 알아보며, 알아가고자 합니다.

문제에 대해 먼저 알아보겠습니다.

문제

어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다.

정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ n ≤ 1,000,000

입출력 예시

nresult
1441
9762

문제에 대한 나의 풀이

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i = 1; i <= 1000; i++){
            if(i * i == n){
                answer = 1;
                break;
            }else if(i * i > n){
                answer = 2;
                break;
            }
        }
        return answer;
    }
}

풀이 설명

int answer = 0;: 결과값을 저장할 변수 answer를 0으로 초기화합니다.

for(int i = 1; i <= 1000; i++): 1부터 1000까지의 수를 순차적으로 확인하기 위한 반복문입니다.

if(i * i == n): 현재 수 i를 제곱한 값이 n과 같다면, n은 제곱수입니다. 따라서 answer를 1로 설정하고 반복문을 종료합니다.

else if(i * i > n): 현재 수 i를 제곱한 값이 n보다 크다면, n은 제곱수가 아닙니다. 따라서 answer를 2로 설정하고 반복문을 종료합니다.

return answer;: 최종적인 결과값 answer를 반환합니다.

이 코드는 1부터 1000까지의 수를 차례대로 제곱하여 n과 비교하면서 n이 제곱수인지 아닌지를 판별합니다. 반환되는 값은 다음과 같습니다:

0: n이 1부터 1000까지의 수들의 제곱으로 표현되지 않는 경우 1: n이 1부터 1000까지의 수들 중 하나의 제곱으로 표현되는 경우 2: n이 1부터 1000까지의 수들의 제곱보다 큰 경우