[프로그래머스]제곱근 구하는 알고리즘

윤동환·2022년 12월 27일
0

Algorithm

목록 보기
19/54

문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

  • 제한 사항
    n은 1이상, 50000000000000 이하인 양의 정수입니다.

내가 작성한 코드

long long solution(long long n) {
    long double answer = 0;
    answer = n / 2;
    if (n % 2 == 1)
        answer += 0.5;
    int i = 0;
    while (++i) {
        if (answer - i < 0)
            if (answer * 2 == i)
                return (i + 1) * (i + 1);
            else
                break ;
        answer -= i;
    }
    return -1;
}

참고한 공식 블로그

하지만 위의 방법으로는 너무 많은 반복문을 실행시켜 시간을 만족시킬 수 없었다...

profile
모르면 공부하고 알게되면 공유하는 개발자

0개의 댓글