이진탐색을 이용하여 풀었다.
num = int(input())
def BSearch(num):
low = 0
high = num
while low <= high:
mid = (low + high) // 2
if mid**2 == num:
return mid
elif mid**2 > num:
high = mid - 1
else:
low = mid + 1
return -1
print(BSearch(num))
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ] [Python] 1072번 : 게임 (0) | 2021.05.07 |
---|---|
[BOJ] [Python] 2512번 : 예산 (0) | 2021.05.07 |
[BOJ] [Python] 2581번 : 소인수분해 (0) | 2021.05.06 |
[BOJ] [Python] 2581번 : 소수 (0) | 2021.05.06 |
[BOJ] [Python] 1978번 : 소수 찾기 (0) | 2021.05.05 |