https://www.acmicpc.net/problem/2785

n = int(input())
chain = list(map(int, input().split()))
chain.sort()
cnt = 1
x = 0
while True:
chain[x] -= 1
cnt += 1
if chain[x] == 0:
x += 1
if cnt + x >= n:
break
print(cnt - 1)
풀이를 정리하자면
chain리스트를 오름차순 정렬 해 준다cnt와 인덱스 번호인 x를 초기화[cnt를 1로 초기화한 이유는 체인 한개당 두개의 체인을 연결할 수 있기때문] cnt += 1 x += 1n보다 크거나 같으면 break!!cnt = 1로 했기 때문에 cnt - 1의외로 고려해야할 부분이 많아서 생각하는데 오래걸린 문제이다.