알고리즘
- 정렬 후 앞에서부터 검사
- (이전까지 연속적으로 잴 수 있는 무게의 최댓값 + 1) 보다 현재 추가 더 무거우면 break. 최댓값 + 1이 잴수없는 최소의 값임.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <bits/stdc++.h>
using namespace std;
int n, weights[1010];
int main() {
cin >> n;
for (int i = 0; i < n; i++)
cin >> weights[i];
sort(&weights[0], &weights[n]);
int result = 0;
for (int i = 0; i < n; i++) {
if (weights[i] > result + 1)
break;
result += weights[i];
}
cout << result + 1;
}