```
백준 13706번 제곱근 Kotlin 구현해보기
```

이번 글을 통해 배워갈 내용
- 백준 13706번 제곱근 Kotlin 구현해보기
https://www.acmicpc.net/problem/13706
13706번: 제곱근
첫째 줄에 양의 정수 N이 주어진다. 정수 N의 제곱근은 항상 정수이며, N의 길이는 800자리를 넘지 않는다.
www.acmicpc.net
백준 13706번 제곱근은
난이도 브론즈 등급의 문제로서
정수 제곱근을 가지는
800자리 이하의 수 N이 주어지면
N의 제곱근을 구해서 출력해주면 되는 문제입니다
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
BigInteger를 사용해서
800 자리 이하의 수 n을 입력받고
이분 탐색을 이용해서
n의 제곱근을 구했습니다
import java.math.BigInteger
fun main(args: Array<String>) {
// 입력
val n = BigInteger(readln())
// 출력
print(findSqrt(n))
}
fun findSqrt(n: BigInteger): BigInteger {
val MAX_TRY = 3000
var low = BigInteger("1")
var high = n
var ans = BigInteger("-1")
for (i in 0..MAX_TRY) {
val mid = (low + high) / BigInteger("2")
val midSq = mid * mid
if (midSq == n) {
ans = mid
break
} else if (midSq > n) {
high = mid - BigInteger("-1")
} else if (midSq < n) {
low = mid + BigInteger("-1")
}
}
return ans
}
// https://codemasterkimc.tistory.com/
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
728x90
'Kotlin > Kotlin 알고리즘' 카테고리의 다른 글
| 백준 25704번 출석 이벤트 Kotlin 구현해보기 (2) | 2022.10.03 |
|---|---|
| 백준 25703번 포인터 공부 Kotlin 구현해보기 (2) | 2022.10.03 |
| 백준 14910번 오르막 Kotlin 구현해보기 (0) | 2022.09.17 |
| 백준 24751번 Betting Kotlin 구현해보기 (0) | 2022.09.15 |
| 백준 2295번 세 수의 합 Kotlin 구현해보기 (0) | 2022.09.09 |