코딩테스트
[2020-11-18] 정수 제곱근 판별도움말
jun96
2020. 11. 18. 16:35
푼 시간 : 30분
언어 : 자바
programmers.co.kr/learn/courses/30/lessons/12934
코딩테스트 연습 - 정수 제곱근 판별
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함
programmers.co.kr
문제를 풀때 Math를 쓰기 싫어서 최대한 고민을 했었다.
그치만 제곱근을 찾을 방법이면서, 가장 빠른 방법은 sqrt를 쓰는 방법 밖에 없는 것 같아 썼다.
있을지는 모르겠지만 다음에는 안 쓰고 풀 수 있을만한 방법을 찾고싶다.
class Solution {
public long solution(long n) {
long answer = 0;
double k=Math.sqrt((double)n);
// long을 double로 바꿔준다.
if((long)k*k==n)
// sqrt로 제곱근을 바꾸고나서 정말 제곱근인지 확인
answer=(long)((k+1)*(k+1));
else
answer=-1;
return answer;
}
}