만들 수 없는 금액

 이 문제는 사용자로부터 N개의 동전과 그 동전들의 값을 입력으로 받는다.

우리는 이 동전들을 가지고 만들 수 없는 가장 작은 값을 구하려 한다.

만약 3 2 1 1 9, 이렇게 다섯개의 동전을 입력으로 받는다면 8원은 만들 수 없으므로 8이 정답이 된다.


기본적인 아이디어는 다음과 같다.

1. 입력받은 동전들을 money 리스트에 저장한다.

2. 이후 combinations를 이용하여 money 리스트로 만들 수 있는 모든 부분 집합을 구한다.

    우리는 중복이 필요없기 때문에 set()을 이용하여 중복을 제거하여 준다.

3. for문을 통해 각 부분 집합들로 만들 수 있는 합을 리스트에 저장한다.

4. 1부터 입력 받은 동전으로 만들 수 있는 가장 큰 값까지 반복문을 실행하고 만약 인덱스 값이 합을 저장       한 리스트에 존재하지 않는다면 해당 인덱스를 출력한다.


파이썬으로 구현한 내용

1, 2 단계 내용














3, 4 단계 내용



댓글