문제 풀이/프로그래머스
프로그래머스 lv0 제곱수판별하기
춘핑이
2023. 2. 22. 17:30
문제
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다.
정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요
내 풀이
public class 제곱수판별하기 {
public int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i++) {
if (i * i == n) {
answer = 1;
break;
} else {
answer = 2;
}
}
return answer;
}
}매우 무식하게 풀었다.
다른 풀이
public int solution(int n) {
int answer = 0;
Double a = Math.sqrt(n);
if(a == a.intValue())
return 1;
else
return 2;
}Math.sqrt : 제곱근을 구하는 공식 double로 리턴값을 준다,
a == a.intValue Double클래스의 intValue사용하면 정수부분만 얻을 수 있음.
만약 a가 123.456 이면 123.456 != 123이니 1이 리턴된다.