11-4. 만들 수 없는 금액

Yelim Kim·2022년 9월 14일
0

Python Algorithm Interview

목록 보기
35/36

Problem

N개의 동전이 주어질 때, 이 동전들로 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에는 동전의 개수를 나타내는 양의 정수 N이 주어진다. (1 <= N <= 1,000)
둘째 줄에는 각 동전의 화폐 단위를 나타내는 N개의 자연수가 주어지며 각 자연수는 공백으로 구분된다. 각 화폐 단위는 1,000,000 이하의 자연수이다.

출력

첫째 줄에 주어진 동전들로 만들 수 없는 양의 정수 금액 중 최솟값을 출력한다.

My code

from itertools import combinations

n = int(input())
s = list(map(int,input().split()))
s.sort()

source = []
source.extend(s)
for j in range(n):  
    for i in list(combinations(s, j+1)):
        source.append(sum(i))
ans = set(source) 
ans = list(ans)

range_list=list(range(1, ans[-1]+1))

for i in range(1,ans[-1]):
    if i not in ans:
        print(i)
        break
if ans==range_list:
    print(ans[-1]+1)

Review


...정답 보고 의욕 상실함ㅋ

그래도 풀었다는거에 의의를 두겠다...


복잡한.. 내 코드의 순서도
쓰다보니 갑자기 틀렸다는 걸 깨닳은 ... 그래도 앵간 예시는 다 맞음(강조)^^
ㅋㅋㅋㅋㅋㅋ ㅠㅠ 정답이 너무 똑똑했다

이번 문제도 딱 처음 봤을 때 어떻게 해야할지 감이 안잡혔던 문제
뭔가 우걱우걱 푼 느낌의 문제... 다음에도 이렇게 풀 것 같긴 하지만
그래도 오늘도 해냈다. <<도대체 뭘 뿌듯해하시는거죠

profile
뜬금없지만 세계여행이 꿈입니다.

0개의 댓글