[Algorithm] Sqrt(x)

문제 설명

파라메터로 들어온 x의 root 값을 체크하고 소수점으로 나오는 경우 소수점을 버리고 정수 리턴. 단 내장함수 사용 금지!

ex) 9는 3리턴 8은 2.8xx이므로 2리턴

푼 방법

func mySqrt(_ x: Int) -> Int {
        if x == 0 { return 0 }
        
        var result = 2
        var square = 1
        
        while true {
            square = result * result
            
            if square == x {
                return result
            } else if square > x {
                return result - 1
            } else {
                result += 1
            }
        }
        
        return result
    }
  • 0인 경우는 0 리턴
  • 이외의 수는 while을 돌면서 1부터 쭉 제곱해보고 제곱한 수가 x보다 같거나 커지면 그때 result를 구함

결과

image

레포 커밋

Categories:

Updated:

Leave a comment