조건 최대값의 정수를 출력 = mid값에서 가장 큰 값! 이진탐색으로 가장 최대 많이 줄 수 있는 돈을 찾아낸다 import java.util.Arrays; import java.util.Scanner; public class 예산 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); int[] array = new int[N]; for(int i = 0; i < N; i++) { array[i] = scan.nextInt(); } long M = scan.nextLong(); Arrays.sort(array); long answer = 0; long left = 0; ..
조건 게임을 최소! 몇번해야하냐고 해서 left값을 출력 z가 변하지 않는다면 -1 출력 import java.util.Scanner; public class 개임 { public static long x,y,z; public static void main(String[] args) { Scanner scan = new Scanner(System.in); x = scan.nextLong(); y = scan.nextLong(); z = y * 100 / x; if(z >= 99) System.out.println(-1); else { long left = 0; long right = x; while(left
조건 높이의 길이가 1,000,000,000보다 작거나 같은 양의 정수이기때문에 long타입을 써야하는 문제 sum 을 int로 지정해놔서 계속 틀렸다. import java.util.Arrays; import java.util.Scanner; public class 나무의수 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); int M = scan.nextInt(); long[] array = new long[N]; for (int i = 0; i < N; i++) { array[i] = scan.nextLong(); } Arrays.sort(array); long ..
import java.util.Arrays; import java.util.Scanner; public class 랜선자르기 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int K = scan.nextInt(); int N = scan.nextInt(); long[] array = new long[K]; long max = 0; for (int i = 0; i < K; i++) { array[i] = scan.nextInt(); max = Math.max(array[i], max); } Arrays.sort(array); long left = 1; long right = max; while(left