반응형
문제
정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오.
문제풀이
n=int(input())
#01
start=0
end=n
#02
while start<=end:
#03
mid=(start+end)//2
if mid**2<n:
start=mid+1
else:
end=mid-1
print(start)
- #01 : start=0, end=n으로 시작한다.
- #02 : while문은 start가 end보다 커지면 종료한다.
- #03 : mid는 start와 end의 중간값으로 시작한다.
만약 mid**2이 n보다 작으면 start를 mid+1로 늘린다.
그렇게 늘리다보면, 어느순간 mid**2>=n이 되는 순간이 온다.
그 때는 end에 mid-1를 하며 다시 반복하며, start<=end가 될 때까지 if else문을 반복한다.
최종적으로 얻은 값을 출력한다.
'프로그래밍 > 백준' 카테고리의 다른 글
[알고리즘] 백준 7785 파이썬 - 회사에 있는 사람 (2) | 2023.04.20 |
---|---|
[알고리즘] 백준 7795 파이썬 - 먹을 것일가 먹힐 것인가 (2) | 2023.04.19 |
[알고리즘] 백준 13706 파이썬 - 제곱근 (2) | 2023.04.17 |
[알고리즘] 백준 11689 파이썬 - GCD(n,k)=1 (1) | 2023.04.16 |
[알고리즘] 백준 2443 파이썬 - 별 찍기 - 6 (1) | 2023.04.15 |