반응형
프로그래머스 정수 제곱근 판별 - JAVA
문제 설명
- 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 한다.
- n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴.
제한 사항
- n은 1이상, 50000000000000 이하인 양의 정수.
문제 풀이
- 임의의 양의 정수 n에 대해 n이 어떤 양의 정수 x의 제곱인지 판단하기 위해서, n의 제곱근을 제곱을 해준 뒤 n과 비교하면 된다.
- Math.sqrt(n)를 통해 제곱근을 찾는다.
- 1에서 찾은 제곱근을 Math.pow()를 사용하여 제곱한뒤 비교한다.
- n이 어떤 양의 정수 x의 제곱이라면, 1에서 찾은 제곱근에 1을 더한 후 제곱하여 리턴, 아닐 시 -1을 리턴.
소스 코드
class Solution {
public long solution(long n) {
long sqrt = (long)Math.sqrt(n);
if (Math.pow(sqrt, 2) == n) {
return (long)Math.pow(sqrt + 1, 2);
} else {
return -1;
}
}
}
반응형
'알고리즘(Algorithm) > 프로그래머스(Programmers)' 카테고리의 다른 글
[프로그래머스] 짝수와 홀수 - JAVA (0) | 2021.11.02 |
---|---|
[프로그래머스] 제일 작은 수 제거하기 - JAVA (0) | 2021.11.02 |
[프로그래머스] 정수 내림차순으로 배치하기 - JAVA (0) | 2021.11.01 |
[프로그래머스] 자연수 뒤집어 배열로 만들기 - JAVA (0) | 2021.10.31 |
[프로그래머스] 자리수 더하기 - JAVA (0) | 2021.10.31 |