코딩테스트연습/[프로그래머스] Java

[프로그래머스] Java 코딩테스트 연습 - 제곱수 판별하기

_꼬마돌 2023. 6. 28. 00:53
반응형

[프로그래머스] Java 코딩테스트 연습 - 제곱수 판별하기

문제 출처

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

 

프로그래머스

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

programmers.co.kr

 

문제

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

 

풀이

Math.sqrt() 메서드를 사용해서 n의 제곱근을 구하고 double형 변수인 squareRoot에 저장했다. 그 다음에 squareRoot와 int형으로 캐스팅한 Math.sqrt(n)을 비교했다. 
double 형을 int형으로 캐스팅하면 소수 부분이 사라지는 것을 이용했다. squareRoot는 double형이기 때문에 n이 제곱수라면 정수만 있을 것이고, 제곱수가 아니라면 소수부분이 있을것이다. Math.sqrt(n)을 int형으로 캐스팅한 값과 squareRoot의 값이 같다면 n은 제곱수라는 뜻..!

 

소스코드

class Solution {
    public int solution(int n) {
        double squareRoot = Math.sqrt(n);

        if (squareRoot == (int) Math.sqrt(n)) {
            return 1;
        } else {
            return 2;
        }
    }
}

 

반응형