CodingTest

프로그래머스 - 제곱수 판별하기 (JAVA)

쩡선영 2023. 1. 11. 18:07

프로그래머스 0단계 제곱수 판별하기 문제입니다!

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

 

프로그래머스

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

programmers.co.kr

 

 문제설명


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

<제안사항>

1) 1<= n <= 1,000,000

직접 푼 코드


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

 

코드설명


1) 1부터 n까지 반복분을 돌리다가

2) i*i가 n과 같다면 answer을 1로 초기화 해준 뒤 반복문을 빠져나왔습니다

(필요 없는 행동은 하지 않기 위해 break 해줬어요!!)

3) 만약 answer이 1이 아니라면 answer은 2로 초기화 해줬습니다

 

 

 

 

 

다른 사람이 짠 코드


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

또잉... 더욱 쉽게 짤 수 있는 방법이 없을까 하며 다른 사람의 코드를 구경하던 와중

Math클래스 안에 있는 sqrt라는 메서드가 있군요...

무엇인지 궁금해서 바로 구글링 해봤습니다!

 

 

sqrt 메소드


sqrt메소드란 자바에서 특정값의 제곱근을 구할때 사용하는 것입니다!

java.lang.Math 클래스에서 제공하는 메소드입니다

 

Math.sqrt(대상숫자);

 

이렇게 사용해주시면 됩니다

오늘도 하나 배워가는군요... 최고최고