코딩테스트
[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이하의 숫자는 무조건 만들수있다.