반응형

 

import java.util.Scanner;

public class B_1166 {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int n = scanner.nextInt();
        int l = scanner.nextInt();
        int w = scanner.nextInt();
        int h = scanner.nextInt();

        //시간이 너무 많이 걸리는 것이 문제다. 가장 큰 변을 찾고 그 변을 이분탐색하는 것이 적절하다.
        double start = 0;
        double stop = Math.max(Math.max(l, w), h);

        int i;
        for (i = 0; i < 10000; i++) {
            double mid = (start+stop) / 2;
            if ((long)l/mid * (long)w/mid * (long)h/mid >= n) {
                start = mid;
            }
            else {
                stop = mid;
            }
        }
        System.out.println(stop);
    }
}

https://www.acmicpc.net/problem/1166

 

1166번: 선물

첫째 줄에 N L W H가 주어진다. 모든 값은 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 

반응형

'coding > Java' 카테고리의 다른 글

[자바] 백준 알고리즘 1076번  (0) 2020.09.19

+ Recent posts