[JAVA] 프로그래머스 코딩테스트 연습 - 정수 제곱근 판별
프로그래머스 기출문제 풀이
정수 제곱근 판별
-
설명 : 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. -
입력 : 121
-
출력 : 144
-
풀이
class Solution {
public long solution(long n) {
double param = n / (double)2.0;
long div = 0L;
while(param-(++div)>0) {
param = param-(div);
}
if(div*div==n) return (div+1)*(div+1);
else return -1;
}
}
- 정리
- 제곱근 공식을 사용하여 간단히 풀수있을것이라 예상했으나 데이터 타입의 사용이 핵심이었던 문제
- 최초 param의 형식을 float, div의 형식을 int로 지정하여 범위가 넘어가는 문제가 발생했다.
- 사소한 디테일을 놓치면 안됨.
- 제곱근 공식을 사용하여 간단히 풀수있을것이라 예상했으나 데이터 타입의 사용이 핵심이었던 문제