Post

제곱근 구하기 (이진탐색)

제곱근 구하기 (이진탐색)

21억의 제곱근은 얼마일까?

약 45000 인 것 같은데, 한번 구해볼까?


✅ 코드

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
32
package ps;

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;


public class Solution {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = 2100000000;
		int left = 1;
		int right = n;
		int res = 0;
		
		while (left <= right) {
			int mid = (left + right) / 2;
			
			// 오버플로우 방지라서 mid * mid > n 아님
			if (mid > n/mid) {
				right = mid - 1;
			}
			else if (mid <= n/mid) {
				res = mid;
				left = mid + 1;
			}
		}
		System.out.println(res);
		
		
	}
}


출력값 : 45825

This post is licensed under CC BY 4.0 by the author.

Trending Tags

반갑습니다 무엇을 도와드릴까요?