상세 컨텐츠

본문 제목

백준 1300번

백준 알고리즘 풀이

by 발발개발 2021. 11. 4. 15:39

본문

원본 : 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();
	}
}

'백준 알고리즘 풀이' 카테고리의 다른 글

백준 1927번  (0) 2021.11.08
백준 12015번  (0) 2021.11.04
백준 2110번  (0) 2021.04.19
백준 2805번  (0) 2021.04.19
백준 1654번  (0) 2021.04.19

관련글 더보기

댓글 영역