Algorithm/Greedy

[Python] 만들 수 없는 금액

코딩쪼앙 2023. 1. 16. 14:47

문제

  • N개의 동전을 이용하여 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하세요
  • 예를 들어, N = 5이고, 각 동전이 3원, 2원, 1원, 9원짜리 동전이라고 가정합시다
  • 이 때 동빈이가 만들 수 없는 양의 정수 금액 중 최솟 값은 8원입니다

입력

  • 첫째 줄에는 동전의 개수를나타내는 양의 정수 N이 주어집니다
  • 둘째 줄에는 각 동전의 화폐 단위를 나타내는 N개의 자연수가 주어지며, 각 자연수는 공백으로 구분합니다.  이 때 각 화폐의 단위는 1,000,000 이하의 자연수입니다

출력

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

문제 풀이

  • 동전의 금액을 오름차순으로 정렬
  • 오름차순으로 정렬 한 동전들을 더해가면서 만들 수 있는 값(target) 업데이트
  • 만약 target 값보다 동전의 금액이 큰 경우 그 target 값을 만들 수 없으므로 break
  • target 값 출력

코드

n = int(input())
data = list(map(int,input().split()))
data.sort()
target = 1
for i in data:
    if target < i:
        break
    target += i
print(target)

'Algorithm > Greedy' 카테고리의 다른 글

[Python] 백준 1946번 신입사원  (0) 2023.03.20
[Python] 볼링공 고르기  (0) 2023.01.16
[Python] 문자열 뒤집기  (0) 2023.01.10
[Python] 곱하기 혹은 더하기  (0) 2023.01.09
[Python] 모험가 길드  (0) 2023.01.09