얼렁뚱땅 백준 문제풀이
[백준 문제풀이] 얼렁뚱땅 2417번 정수 제곱근 풀이
MOSTAR
2022. 5. 17. 19:26
아래 math 패키지를 이용하면 이렇게 된다
elif를 써준 이유는 분명 배웟는데도 모르겠는 부동소숫점 문제 뭐시기때문에
예외가 있다고 한다.. ... ㅜ
import math
n = int(input())
answer = math.sqrt(n)
if answer*answer < n :
print(int(answer)+1)
elif str(answer).split('.')[1] == '0' :
print(int(answer))
else :
print(int(answer)+1)
하지만 그냥 그런 생각 없이 이분탐색으로 풀면 된다
이게 시간은 아주 쪼금 더 걸리지만 괜찮다 굿
n = int(input())
start = 0
end = 2**32
answer = -1
while True :
if start > end :
break
mid = (start+end)//2
if mid**2<n :
start = mid + 1
elif mid**2 > n :
answer = mid
end = mid - 1
else :
answer = mid
break
print(answer)
마법사가 토네이도 부르던거 하다가 이거하니까 쉽다 야호 .. ㅜ