Exercises
백준 1654
sysout.초코우유
2018. 12. 20. 15:53
일단 돌아가게만이라도 만들어 놓고 싶어서 이진탐색으로 모든 경우를 찾아 해결.
앞의 오류는 왜인지 아직 못찾.................
import java.util.*; public class Main { int n; long demand; long[] cab; Main(int n){ this.n=n; cab=new long[n]; } long test(long min, long max) { if(min==max) {return max;} long res=0; long len=(min+max+1)/2; for(long cable:cab) { res+=cable/len; } if(demand<=res) { return test(len,max); } else { return test(min,len-1); } } public static void main(String args[]) { Scanner sc=new Scanner(System.in); int n = sc.nextInt(); Main main=new Main(n); main.demand=sc.nextInt(); for(int i = 0; i < n; i++) { main.cab[i]=sc.nextInt(); } sc.close(); System.out.println(main.test(1,(long)Integer.MAX_VALUE)); } }