반응형
문제: https://www.acmicpc.net/problem/2417
문제 설명
더보기
문제
정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 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)
이 코드는 이진 탐색을 이용한 코드입니다. 성능은 비슷하나 코드는 더 길어 내장 라이브러리가 더 나은 것 같습니다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준 2805번 - 나무 자르기 / Python (0) | 2021.08.17 |
---|---|
백준 10815번 - 숫자 카드 / Python (0) | 2021.08.17 |
백준 13706번 - 제곱근 / Python (0) | 2021.08.17 |
백준 18310번 - 안테나 / Python (0) | 2021.08.17 |
백준 1715번 - 카드 정렬하기 / Python (0) | 2021.08.17 |