728x90
반응형
문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
제한 사항
n은 1이상, 50000000000000 이하인 양의 정수입니다.
입출력 예
n return
121 144
3 -1
코드
import java.text.DecimalFormat;
class Solution {
public long solution(long n) {
long answer = 0;
String result = new DecimalFormat("#.##").format(Math.sqrt(n));
boolean ox = result.matches("-?\\d+");
if(ox == true){
answer = (Long.parseLong(result)+1)*(Long.parseLong(result)+1);
}else {
answer = -1;
}
return answer;
}
}
boolean ox = result.matches("-?\d+") : 정수 인지 판별하는 식
Long.parseLong(result) : string-> long 형변환
new DecimalFormat("#.##").format() : .0 인 경우 없애기
Math.sqrt(n) : 루트
반응형
'프로그래머스 > 프로그래머스 - JAVA' 카테고리의 다른 글
[JAVA] 소수 찾기 (0) | 2023.02.21 |
---|---|
[JAVA] 정수 내림차순으로 배치하기 (0) | 2023.02.21 |
[JAVA] 콜라츠 추측 (0) | 2023.02.21 |
[JAVA] 하샤드 수 (0) | 2023.02.21 |
[JAVA] x만큼 간격이 있는 n개의 숫자 (0) | 2023.02.17 |