제곱수 판별하기
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
❗ 제곱수는 같은 수를 곱했을 때 정수가 나오는 수를 말한다.
1 ≤ n ≤ 1,000,000
💻 풀이
⌛ 시간 0.01ms ~ 0.05ms
public int solution(int n) {
for(int i = 1; i * i <= n; i++) {
if(i * i == n) {
return 1;
}
}
return 2;
}
💻 풀이
더 쉽고 간단하게 풀 수 있는 방법은 Math.sqrt 이다.
※ Math.sqrt : 제곱근을 반환하는 함수
매개변수 n의 제곱근을 구해준다. (실수를 return하기 때문에 double로 받아준다.)
이후 구해진 제곱근(실수) 와 정수로 변환한 제곱근이 일치할 경우 1, 일치하지 않을 경우 2를 return 해준다.
⌛ 시간 0.02ms ~ 0.04ms
전체코드
public int solution1(int n) {
double sq = Math.sqrt(n);
return (sq == (int) sq) ? 1 : 2;
}
💻 풀이
전체코드
public int solution2(int n) {
if(n % Math.sqrt(n) == 0) {
return 1;
}
return 2;
}