Leetcode Java Sqrt(x)

업데이트:

문제

Link

코드

class Solution {

  public int mySqrt(int x) {
    long result = x;
    while (result * result > x) {
      result = (result + x / result) / 2;
    }
    return (int)result;
  }

}

결과

Link

설명

  1. 주어진 정수 x의 제곱근을 구하는 문제이다.

  2. 변수 result를 int보다 큰 자료형인 long으로 정의한다.
    • 제곱근을 구할 때 $result \times result$의 값이 int형일 경우, 허용 범위를 초과하기 때문에 long으로 정의한다.
  3. $result \times result$가 주어진 정수 x보다 작을 때 까지 반복하여 제곱근 result를 구한다.
    • $result \times result$가 주어진 정수 x보다 작으면, result에 $\frac{result + \frac{x}{result}}{2}$의 값을 넣는다.
    • 위의 값을 result에 넣는 이유는 제곱근을 구하기 위해 근사값을 산정하기 위함이다.
  4. 반복문이 종료되면, 구해진 제곱근인 result를 주어진 문제의 결과로 반환한다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기