티스토리 뷰

백준/실버

[백준 13706번] 제곱근 (python)

게임개발기원 2023. 2. 5. 16:41

문제링크 : https://www.acmicpc.net/problem/13706

def binary_search(low, high) :
    while(1) :
        mid = (low + high) // 2
        if mid**2==n : 
            return mid
        elif mid**2>n :
            high = mid - 1
        elif mid**2<n:
           low = mid + 1
            
n=int(input())
            
print(binary_search(1, n))

이번 문제는 큰수 계산이 필요하여 C++은 너무 복잡해질 것 같아서 파이썬으로 풀었다.

푸는 방법은 sqrt()함수를 통해 쉽게 구할수도 있고 이분탐색을 통해 풀 수 있는데 공부할겸 이분탐색으로 풀었다.

조건이 맞을 때 (제곱근일 때) 탈출하는 조건으로 무한루프를 돌고, low값과 high값의 mid 값을 기준으로 low 범위 및 hight 범위를 계속해서 반으로 줄여가며 탐색한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함