728x90
문제
동네 편의점의 주인인 동빈이는 N개의 동전을 가지고 있습니다. 이때 N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요.
예를 들어, N=5 이고, 각 동전이 각각 3원, 2원, 1원, 1원, 9원짜리(화폐 단위) 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 8원입니다.
또 다른 예시로, N=3이고, 각 동전이 각각 3원, 5원, 7원 동전이라고 가정합시다. 이때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟값은 1원입니다.
[입력 조건]
첫 째줄에는 동전의 개수를 나타내는 양의 정수 N이 주어집니다. (1≤N≤1,000)
둘째 줄에는 각 동전의 화폐 단위를 나타내는 N개의 자연수가 주어지며, 각 자연수는 공백으로 구분합니다. 이때, 각 화폐 단위는 1,000,000 이하의 자연수입니다.
[출력 조건]
첫째 줄에 주어진 동전들로 만들 수 없는 양의 정수 금액 중 최솟값을 출력합니다.
코드
#만들 수 없는 금액
#N개의 동전을 가지고 있음 -> 만들 수 없는 양의 정수 금액 중 최솟값
n = int(input())
data = list(map(int,input().split()))
#오름차순 정령
data.sort()
result = 1
for x in data:
if result < x:
break
result += x
print(result)
접근
💡 화폐단위로 오름차순 정렬 -> 1부터 차례대로 특정 금액 생성 여부 확인
현재 확인하는 동전을 이용해서 result 금액을 만들 수 있는 지 확인.
result 금액을 만들 수 있다면 result 값 업데이트.
728x90
'공부 자료 > 알고리즘' 카테고리의 다른 글
[그리디] 볼링공 고르기 (0) | 2022.08.29 |
---|---|
[그리디] 문자열 뒤집기 (0) | 2022.08.29 |
[그리디] 곱하기 혹은 더하기 (0) | 2022.08.29 |
[그리디] 모험가 길드 (0) | 2022.08.29 |
(Python/파이썬) 백준 21760번 - 야구시즌 (0) | 2022.04.28 |