양팔 저울의 한 쪽에만 저울 추를 올려 다른 쪽의 무게를 측정할 수 있고,
저울 추의 개수 N
과각각의 무게
가 주어졌을 때,
추들로측정할 수 없는
양의 정수 무게 중최솟값
을 구하라.
추의 무게 범위를 계산해보자
위의 그림에서와 같이 만약 무게 1의 추가 하나 있어 양의 정수 1까지의 범위를 커버할 수 있었다고 해보자.
이때, 무게 2의 추
가 생긴다면, 양의 정수 1까지의 범위와 새로운 추에서 가능한 2-3의 범위가 커버된다. 이때 3은 새로운 추의 무게 2와 이전까지의 추의 범위의 최댓값인 1이 더해진 것이다. 따라서 정수 1, 2, 3이 모두 커버된다.
이때, 무게 2의 추가 아닌 무게 3의 추
가 생긴다면, 양의 정수 1까지의 범위와 새로운 추에서 가능한 3-4 범위가 커버된다. 이때 4는 새로운 추의 무게 4과 이전까지의 추의 범위의 최댓값인 1이 더해진 것이다. 따라서 정수 1, 3, 4가 커버된다.
이처럼, 추가 하나씩 더 생길 때, 커버 가능한 구간이 불연속인 경우를 고려하면 문제를 해결할 수 있다.
# input
N = int(input()) #1000
weights = list(map(int, input().split()))
weights.sort()
# solution
# 작은 추부터 추가하면서, 추가 하나 추가될 때마다 측정할 수 있는 범위를 늘린다!
# 이때 끊어지는 부분이 생기면 ans
len = 0
for i in range(N):
if weights[i] - len <= 1:
len += weights[i]
else:
break
# ouput
print(len + 1)