5
3 2 1 1 9
8
n = 5
coin = [ 1, 1, 2] #오름차순 정렬1원: 1
2원: 2
3원: 1 + 2
- 4원도 만들 수 있는지 확인
- 이때 화폐 단위 3원 동전 추가
coin = [ 1, 1, 2, 3]
4원: 1 + 3
5원: 2 + 3
6원: 1 + 2 + 3
7원: 1 + 1 + 2 + 3- 8원도 만들 수 있는지 확인
- 이때 화폐 단위 9원 동전 추가
coin = [ 1, 1, 2, 3, 9 ]
8원: x
9원: 9- 8원을 만드는 방법이 존재하지 않음
- 정답: 8
n = int(input())
coin = [0] * n
coin = list(map(int, input().split()))
coin.sort()
target = 1
for i in coin:
# target 보다 큰 숫자의 coin이 들어올 경우, 만들 수 없는 금액 찾음
if target < i:
break
# target - 1 까지 만들 수 있음
target += i
print(target)
책도 보고 여러 블로그도 찾아서 이해하려 했는데 잘 이해가 가지 않는다..
다음에 다시 풀어봐야할 것 같다.