코딩테스트 회고록/코테_Java

[JAVA] 프로그래머스 - 제곱수 판별하기

iamjisu 2023. 1. 13. 00:49

프로그래머스 코딩테스트 연습 0단계 '제곱수 판별하기' 문제 입니다.

https://school.programmers.co.kr/learn/courses/30/lessons/120909

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명

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


⚠️ 제한사항

  • 1 ≤ n ≤ 1,000,000

✏️ 직접 구현한 코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        int cnt = 0;
        for(int i = 1; i <= n; i++) {
            if(n % i == 0) {
                cnt++;
            }
        }
        if(cnt % 2 != 0) {
            answer = 1;
        } else {
            answer = 2;
        }
        return answer;
    }
}

🗣️ 코드 설명

제곱수의 약수는 홀수개이고, 제곱수가 아닌 수의 약수는 짝수개라는 규칙을 찾아내서

약수가 홀수개인지, 짝수개인지에 따라서 1이나 2가 리턴되도록 했다.