일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- dropout
- 가끔은_말로
- 이분 탐색
- pytorch
- 조합론
- 다익스트라
- back propagation
- BFS
- 미래는_현재와_과거로
- 크루스칼
- 우선 순위 큐
- 알고리즘
- lazy propagation
- tensorflow
- object detection
- 백트래킹
- 가끔은 말로
- 분할 정복
- NEXT
- 세그먼트 트리
- Overfitting
- 자바스크립트
- c++
- 플로이드 와샬
- DP
- 너비 우선 탐색
- 회고록
- 2023
- 문자열
- dfs
Archives
- Today
- Total
Doby's Lab
백준 13706번: 제곱근 (Python) 본문
https://www.acmicpc.net/problem/13706
13706번: 제곱근
첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다.
www.acmicpc.net
Solved By: Binary Search
주어지는 수가 엄청 크기 때문에 Python을 이용했습니다. Python의 math 패키지에 있는 sqrt를 사용하여 문제를 풀려 했지만 연산을 해야 하는 값이 너무 커서 OverflowError가 나왔습니다.
그래서 이분 탐색을 돌려서 만족하는 값이 있으면 출력하도록 코드를 썼습니다.
from math import sqrt
n = int(input())
low, high = 1, n
while low <= high:
mid = (low + high) // 2
#print(mid)
if(mid * mid < n):
low = mid + 1
elif(mid * mid > n):
high = mid - 1
else:
print(mid)
break
'PS > BOJ' 카테고리의 다른 글
백준 13306번: 트리 (C++) (0) | 2022.08.13 |
---|---|
백준 1305번: 광고 (C++) (0) | 2022.08.10 |
백준 14935번: FA (Python) (0) | 2022.08.08 |
백준 7501번: Key (C++) (0) | 2022.08.07 |
백준 17633번: 제곱수의 합 (More Huge) (C++) (0) | 2022.08.07 |