
문제를 이해하는데 한참 걸렸다.. 정리하자면 다음과 같다.

3 // N의 값 입력
7 // k의 값 입력
만약 선형 탐색으로 모든 배열을 순회한다면 최악의 경우 N^10 번이나 탐색 해야한다.
그러나 A 배열을 B 배열로 정렬시킬 수 있을까?
2.1 B 배열 분석

2.2 A 배열 분석



니머지는 코드로 설명하겠다
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));
int N = Integer.parseInt(br.readLine());
int k = Integer.parseInt(br.readLine());
long lo = 1;
long hi = k;
while (lo < hi){
long mid = (lo + hi) / 2;
long count = 0;
for (int i=1; i<=N; i++){
count += Math.min(mid/i, N);
}
if (k<=count){
hi = mid;
}else{
lo = mid+1;
}
}
System.out.print(lo);
}
}