PS/LV.1 프로그래머스 문제
[프로그래머스] LV.1 정수 제곱근 판별 - 자바 [7/80]
yaho!!
2024. 7. 16. 22:55
💬 문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
🚫 제한 사항
- n은 1이상, 50000000000000 이하인 양의 정수입니다.
📢 입출력 예
👨🏫 입출력 예 설명
📃 제출 코드
class Solution {
public long solution(long n) {
long answer = -1;
long sqrt = (long) Math.sqrt(n);
if (sqrt * sqrt == n) {
answer = (long)Math.pow(sqrt + 1, 2);
}
return answer;
}
}
✏ 해결방법 & 배운점
접근방법
- 정수 `n`의 제곱근을 구한다.
- 제곱근을 다시 제곱하여 원래 숫자 `n`과 같은지 확인한다.
- 만약 제곱근의 제곱이 `n`과 같다면 제곱근에 1을 더한 후 그 값을 다시 제곱하여 새로운 값을 구한다.