문제 바로가기> 백준 2437번: 저울
그리디 알고리즘을 이용해서 푸는 문제이다.
다음에 등장하는 숫자가 누적합 + 1
이하라면 누적합 + 1
까지의 숫자들은 기존의 숫자들의 조합으로 모두 표현이 가능하지만, 다음에 등장하는 숫자가 누적합 + 2
이상이라면 기존의 숫자들의 조합으로 표현이 불가능하므로 누적합 + 1
을 출력해준다.
def solution():
N = int(input())
nums = list(map(int, input().split()))
nums.sort()
ans = 1
for i in range(N):
if ans<nums[i]: break
ans+=nums[i]
print(ans)
solution()