반응형
문제
정수 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에 가깝게 값을 바꾸어 나간다.
'프로그래밍 > 백준' 카테고리의 다른 글
[알고리즘] 백준 7795 파이썬 - 먹을 것일가 먹힐 것인가 (2) | 2023.04.19 |
---|---|
[알고리즘] 백준 2417 파이썬 - 정수 제곱근 (2) | 2023.04.18 |
[알고리즘] 백준 11689 파이썬 - GCD(n,k)=1 (1) | 2023.04.16 |
[알고리즘] 백준 2443 파이썬 - 별 찍기 - 6 (1) | 2023.04.15 |
[알고리즘] 백준 1153 파이썬 - 네 개의 소수 (2) | 2023.04.14 |