문제
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수
제한조건
n은 1이상, 50000000000000 이하인 양의 정수
입출력 예
n return121 1443 -1
코드
class Solution {
public long solution(long n) {
long answer=0;
Double x = Math.sqrt(n); // Math.sqrt의 반환타입은 double 형으로 변수의 타입은 double로 선언해준다.
if( x == x.intValue()) { // 실수형인 x의 값을 intValue(n) 메소드를 사용하면 x값을 정수 값으로 반환해준다
x는 실수값인 11.0을 출력된다. 이런 x 값을 x.intValue() 메서드를 사용해주면 정수형인 11
answer = (long) Math.pow(x +1, 2);
} else {
answer = -1; }
return answer;
}
}
참고블로그https://codechacha.com/ko/java-math-pow/
Java - 거듭제곱 계산, Math.pow()
Math.pow()를 이용하여 거듭제곱을 계산할 수 있습니다. pow는 power를 의미하고, power의 뜻은 거듭제곱입니다. pow() 인자 두개, a와 b를 전달하며, a의 b 제곱이 리턴됩니다. 즉, a를 b번 곱한 값이 리턴
codechacha.com
https://crazykim2.tistory.com/m/599
> 제곱근(루트) 구하기 Math.sqrt() 개념 및 사용법 정리
'Algorithm' 카테고리의 다른 글
프로그래머스_lv1_문자열내 p와 y의 개수 (0) | 2022.10.21 |
---|---|
프로그래머스_lv1_자연수 뒤집어 배열로 만들기 (0) | 2022.10.20 |
프로그래머스 lv1_평균구하기_JAVA (0) | 2022.10.18 |
이진트리의 3가지 순회방법 정리 - DFS (0) | 2022.10.13 |
피보나치 재귀(메모리제이션) (0) | 2022.10.12 |