1.주어진 매개변수가 '정수'의 제곱인지 아닌지 판별
2.참이라면 매개변수의 (제곱근 + 1) * (제곱근 + 1)을 반환
2-1.거짓이라면 -1을 반환
Java에서 변수의 제곱근을 구하는 Math클래스의 sqrt를 사용하면 된다.
Math.sqrt(double a)
단, 반환형이 double이므로 다른 형의 변수에 저장할 때는 형변환이 필요하다.
위의 문제에서는 단순히 제곱을 반환하기 때문에 (제곱근 + 1) * (제곱근 + 1)로 계산하면 되지만 그 이상의 제곱에는
Math.pow(double a, double, b)를 사용하면 쉽다. (a를 b만큼 제곱한다)
이또한 반환형은 double이다.
public long solution(long n) {
long answer = 0;
double a = Math.sqrt(n); //매개변수의 제곱근을 a에 저장
if(a % 1 == 0){ //1로 나눴을 때 소수점이 남지 않으면 정수
//answer = (long)((a+1) * (a+1)); //단순 제곱을 구하는 식
answer = (long)(Math.pow((a+1), 2)); //Math클래스를 이용한 제곱을 구하는 식
}else{
answer = -1;
}
return answer;
}
'개?발 > 프로그래머스' 카테고리의 다른 글
나머지가 1이 되는 수 찾기 (Java) (0) | 2024.07.31 |
---|---|
짝수와 홀수 (Java) (0) | 2024.07.31 |
자연수 뒤집어 배열로 만들기(Java) (0) | 2024.07.30 |
자릿수 더하기 (Java) (0) | 2024.07.27 |
문자열 내 p와 y의 개수 (0) | 2024.07.05 |