leetcode#69 Sqrt(x)

정은경·2022년 5월 30일
0

알고리즘

목록 보기
64/125

1. 문제

2. 나의 풀이

2-1. 경우 수를 크게 줄이기 위해 계속 반으로 나눔

class Solution(object):
    def mySqrt(self, x):
        """
        :type x: int
        :rtype: int
        """
        
        if x < 2:
            return x
        
        new_num = x // 2
        while True:
            if new_num ** 2 == x:
                return new_num
            if new_num ** 2 < x:
                break
            new_num = new_num // 2
        
        # print("ohohooo", new_num)
        # return 1
        for i in range(new_num, new_num*2+1):
            # print("hahah", i)
            if i ** 2 <= x and x < (i+1) ** 2:
                return i

3. 남의 풀이

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글