문제 설명
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ n ≤ 1,000,000
입출력 예
입출력 설명
입출력 예 #1
- 144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.
입출력 예 #2
- 976은 제곱수가 아닙니다. 따라서 2를 return합니다.
코드
import java.lang.*;
class Solution {
public int solution(int n) {
int answer = 0;
int num = (int)Math.sqrt(n);
answer = (n == num*num) ? 1 : 2;
return answer;
}
}
풀이
sqrt()를 이용해 n의 제곱근을 구해 변수 num에 할당해준다. 그리고 n과 num의 제곱이 같다면 answer에 1을 저장하고, 아니라면 2를 저장한다.
다른 코드와 풀이
아래의 코드는 다른 사람들이 작성한 것들로, 내 코드와 비교, 참고하기 위해 가져왔다.
class Solution {
public int solution(int n) {
if (n % Math.sqrt(n) == 0) {
return 1;
} else {
return 2;
}
}
}
n을 n의 제곱근으로 나누었을 때 나머지가 0이면 1을 리턴하고, 그렇지 않으면 2를 리턴한다.
'Coding Test' 카테고리의 다른 글
231006 x만큼 간격이 있는 n개의 숫자 - Level 1 (1) | 2023.10.06 |
---|---|
231005 공배수 - Level 0 (1) | 2023.10.05 |
231003 숨어있는 숫자의 덧셈(1) - Level 0 (1) | 2023.10.03 |
231003 순서쌍의 개수 - Level 0 (0) | 2023.10.03 |
231002 문자 반복 출력하기 - Level 0 (0) | 2023.10.03 |