원본 : https://huiung.tistory.com/90
백준 1300 K번째 수
https://www.acmicpc.net/problem/1300 문제와 채점은 위 사이트에서 확인 하실 수 있습니다 이 문제는 N*N배열이 있을 때 이 배열엔 i*j의 숫자가 들어있다고 하고 이 배열을 일차원 배열에 오름 차순으로
huiung.tistory.com
풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
public static BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws Exception {
double n = Double.parseDouble(reader.readLine());
double k = Double.parseDouble(reader.readLine());
double start = 1;
double end = k;
double mid = 0;
double answer = 0;
while (true) {
if (start > end) {
break;
} else {
mid = (int)((start + end) / 2);
int cnt = 0;
for (int i = 1; i <= n; i++) {
cnt += Math.min(n, (int)(mid / i));
}
if (cnt >= k) {
answer = mid;
end = mid - 1;
} else {
start = mid + 1;
}
}
}
writer.write((int)answer + "");
writer.flush();
}
}
댓글 영역