프로그래밍/백준

[알고리즘] 백준 13706 파이썬 - 제곱근

매 석 2023. 4. 17. 21:31
반응형

 

 

13706번: 제곱근

첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다.

www.acmicpc.net

문제

정수 N이 주어졌을 때, N의 제곱근을 구하는 프로그램을 작성하시오.

문제풀이

n=int(input())
#01
low=1
high=n
while 1:
	#02
    mid=(low+high)//2
    #03
    if mid**2==n:
        print(mid)
        break
    elif mid**2>n:
        high=mid-1
    else:
        low=mid+1

- #01 : 함수를 사용해 쉽게 풀 수도 있지만, 문제의 의도대로 이분탐색으로 풀었다.

- #02 : low와 high의 중간값인 mid를 정의한다. 

- #03 : 만약 mid의 제곱이 n과 같다면 mid를 출력하고 종료한다.

           만약 크다면 high을 mid-1로 작다면 low를 mid+1로 변경하며

           점차 mid의 제곱이 n에 가깝게 값을 바꾸어 나간다.