코딩테스트

[BOJ_2437/JAVA] 저울

Eun 2025. 3. 20. 22:36
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
import java.io.*;

public class Main {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
	
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		int digit[] = new int[n+1]; 
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		for(int i=1;i<=n;i++) {
			
			digit[i] = Integer.parseInt(st.nextToken());
			
		}
		Arrays.sort(digit);
		int sum = 1;
		
		for(int w : digit) {
			// 하나씩 빼기
			
			if(sum < w) {
				// 뽑은 숫자가 더 크면
				break;
			}
			
			sum+=w;

		}
		
		System.out.println(sum);

	}

}

 

누적합의 원리를 알고 있으면 쉬웠던 문제였던것같다.

만약 누적합이 7이 나오면 7이하의 숫자는 무조건 만들수있다.