본문 바로가기
  • 비둘기다
  • 비둘기다
  • 비둘기다
코딩테스트/baekjoon

[이분 탐색] 백준 2417번 (파이썬) : 정수 제곱근

by parzival56 2023. 4. 7.

n = int(input())

q = 0
t = n

while q <= t:
    mid = (q + t) // 2
    if mid ** 2 < n:
        q = mid + 1
    else:
        t = mid - 1

print(q)

전체적인 개요는 시작점과 끝점을 정한 후 조건문에 따라 시작점이나 끝점을 바꿔주면서 정답에 도달하는 것이다.

이분 탐색에서 자주 사용하는 mid를 사용하여 좀 더 빠르고 효율적인 계산이 가능하게 하였다.

처음에는 t = n을 쓰지 않고 while문에 t 대신 n을 넣어봤는데 계속 런타임 에러가 났는데 이유는 잘 모르겠다.

댓글