1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class Solution { public long solution(long n) { long answer = 0; int i=(int)Math.sqrt(n);//제곱근을 구하는 sqrt()메소드 double d=Math.sqrt(n); if(i==d)//n의 제곱근이 정수가 아니면 소숫점이 없는 i와 소숫점이 있는 d의 값이 다르다. { return (long)Math.pow(d+1,2);//pow(a,b)=a의b승 } return -1; } } | cs |
- 문제 설명
임의의 정수 n에 대해, n이 어떤 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
- 제한 사항
n은 1이상, 50000000000000 이하인 정수입니다.
제곱근을 구하는 sqrt()메소드를 이용해서 쉽게 구현했다. 조건문으로 소숫점이 없는 i와 소숫점이 있는 d의 값을 비교해서 리턴하게 만들었다.
+자취방에 내려와서 쓰는 노트북에는 지금 쓰는 개발툴이 하나도 설치가 안되어있어 하나 하나 하느라 조오금 귀찮았다. 집에서 쓰는 데스크톱을 가져올까 고민했다.
'프로그래머스 > JAVA' 카테고리의 다른 글
[level 2] 다음 큰 숫자 (0) | 2018.09.10 |
---|---|
[level 1] 핸드폰 번호 가리기 (0) | 2018.09.06 |
[level 1] 평균 구하기 (0) | 2018.09.02 |
[level 1] 수박수박수박수? (0) | 2018.09.01 |
[level 1] 약수의 합 (0) | 2018.08.21 |