알고리즘/백준

백준 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)

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

반응형