문제
https://programmers.co.kr/learn/courses/30/lessons/12934
풀이
1. n의 제곱근 값(실수)을 temp 변수에 담는다.
2. temp와 temp의 정수를 비교한다.
2-1. 둘의 차이 > 0
temp는 소수점 아래 값이 있다. = n은 정수 제곱근이 존재하지 않는다.
2-2. 둘의 차이 == 0
n은 양의 정수인 제곱근이 존재한다.
3. n의 양의 제곱근이 존재할 경우, 제곱근+1의 제곱을 answer로 return
참고
1. java.lang.Math.sqrt()
- public static double sqrt(double a)
- 제곱근 계산
- 인자가 0일 경우 : 0 return
- 인자가 음수나 NaN(Not a Number)일 경우 : NaN return
2. java.lang.Math.pow()
- public static double pow(double a, double b)
- 거듭제곱 계산 (a의 b 제곱)
코드
import java.lang.*;
class Solution {
public long solution(long n) {
long answer = 0;
double temp = Math.sqrt(n);
if(temp - (int)temp > 0)
answer = -1;
else
answer = (long)Math.pow(temp+1,2);
return answer;
}
}
'Preparing Coding Test > Programmers L1' 카테고리의 다른 글
[Java] 콜라츠 추측 (0) | 2020.07.28 |
---|---|
[Java] 짝수와 홀수 (0) | 2020.07.28 |
[Java] 자연수 뒤집어 배열로 만들기 (0) | 2020.07.27 |
[Java] 자릿수 더하기 (0) | 2020.07.27 |
[Java] 이상한 문자 만들기 (0) | 2020.07.23 |