임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
예제:
Input:
121
Output:
144
Input:
3
Output:
-1
제한 조건:
- n은 1이상, 50000000000000 이하인 양의 정수입니다.
Solution #1
class Solution {
public long solution(long n) {
double sqrt = Math.sqrt(n);
return (sqrt-(int)sqrt) > 0 ? -1 : (long) Math.pow(sqrt + 1, 2);
}
}
Result #1
💡 양의 정수 n이 어떤 수의 제곱근인지 판별하는 방법은 n의 제곱근 값이 소수점 형태인 지를 검사하면 된다. Math 함수를 적절하게 사용하여 간단하게 풀었다.
More Algorithm!
👇👇
github.com/ggujangi/ggu.programmers
출처 : 프로그래머스
'프로그래머스 - JAVA > Level 1' 카테고리의 다른 글
[JAVA] 프로그래머스 Lv.1 : 자연수 뒤집어 배열로 만들기 (0) | 2021.04.02 |
---|---|
[JAVA] 프로그래머스 Lv.1 : 정수 내림차순으로 배치하기 (0) | 2021.04.02 |
[JAVA] 프로그래머스 Lv.1 : 제일 작은 수 제거하기 (0) | 2021.04.02 |
[JAVA] 프로그래머스 Lv.1 : 짝수와 홀수 (0) | 2021.04.02 |
[JAVA] 프로그래머스 Lv.1 : 최대공약수와 최소공배수 (0) | 2021.04.01 |