알고리즘/백준
백준 2417번 - 정수 제곱근
Hwisaek
2021. 8. 17. 15:56
반응형
문제: https://www.acmicpc.net/problem/2417
2417번: 정수 제곱근
정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오.
www.acmicpc.net
문제 설명
더보기
문제
정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 n이 주어진다. (0 ≤ n < 263)
출력
첫째 줄에 q2 ≥ n인 가장 작은 음이 아닌 정수 q를 출력한다.
정답
import math
n = int(input())
print(math.ceil(math.sqrt(n)))
풀이
더보기


q**2 ≥ n인 가장 작은 음이 아닌 정수 q를 구하는 문제입니다. 이진 탐색을 이용하거나, 내장 라이브러리를 사용할 수 있습니다.
import math
n = int(input())
print(math.ceil(math.sqrt(n)))
이는 내장 라이브러리를 이용한 풀이입니다.

n = int(input())
start = 0
end = n
while start <= end:
mid = (start + end) // 2
if mid ** 2 >= n:
end = mid - 1
else:
start = mid + 1
print(start)

이 코드는 이진 탐색을 이용한 코드입니다. 성능은 비슷하나 코드는 더 길어 내장 라이브러리가 더 나은 것 같습니다.
반응형