Programming/백준
[백준] 2417번 : 정수 제곱근
조용한고라니
2021. 3. 20. 13:55
반응형
2417번: 정수 제곱근
정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오.
www.acmicpc.net
[이진탐색, Binary Search]
long타입의 정수 중 제곱했을 때 n보다 큰 값중 가장 작은 값을 찾는 문제.
left = 0, right = n으로 세팅하고 이진탐색을 진행하면 쉽게 찾는다.
# Code </>
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long n = Long.parseLong(br.readLine()), left = 0, right = n, min = Long.MAX_VALUE;;
while(left <= right){
long mid = (left + right) / 2;
long value = (long) Math.pow(mid, 2);
if(value >= 0){
if(value >= n){
min = Math.min(min, mid);
right = mid - 1;
}
else
left = mid + 1;
}
}
System.out.println(min);
}
}
반응형