어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
class Solution {
public int solution(int n) {
int answer = 0;
return answer;
}
}
입출력 예 #1
입출력 예 #2
class Solution {
public int solution(int n) {
int answer = 0;
// n의 최대가 1000 000(백만) 이므로, 1000(천) 이 가장 큰 수
for (int i = 1; i <= 1000; i++) {
if (i * i == n) { // 루트로 나눌 때, 정수가 된다면
answer = 1;
break;
} else {
answer = 2;
}
}
return answer;
}
}
break 를 붙여주지 않아서 계속 오류가 떴었다.
class Solution {
public int solution(int n) {
int answer = 0;
Double sqrt = Math.sqrt(n); // 숫자 n에 루트를 씌워서 변수 sqrt 에 담는다
if(sqrt == sqrt.intValue()) { // sqrt의 값이 정수라면
answer = 1;
} else {
answer = 2;
}
return answer;
}
}
Math.sqrt() : 제곱근(루트) 구하기
intValue()
class Solution {
public int solution(int n) {
return Math.sqrt(n) % 1 == 0 ? 1 : 2;
}
}