백준 11047 동전0 파이썬

최대 1 분 소요

백준 11047 동전0 풀이

접근방식

  1. 거스를 수 있는 돈 중 가장 큰 것부터 거슬러 갑니다. -> 이를 위해서 입력받은 동전 리스트를 내림차순으로 정렬해주고, -> if 문을 활용해서 해당 동전이 거스를 수 있는 동전 중 가장 큰 값인지 판별합니다.
# 입력받기
import sys

input = lambda: sys.stdin.readline().rstrip()

n, k = map(int, input().split())

coin = []

for _ in range(n):
    coin.append(int(input()))

coin.sort(reverse=True)

ans = 0

for i in range(n):
    if k // coin[i] >= 1:
        ans += (k // coin[i])
        k -= coin[i] * (k//coin[i])


print(ans)

해당 문제는 실버3레벨에 해당하므로 어렵지 않게 풀 수 있는 문제였습니다.

그리디 알고리즘을 처음 접하기에 적합한 문제라고 생각합니다.

알고리즘도 모든 것과 마찬가지로 꾸준한 연습과 이해를 바탕으로 실력이 향상합니다. Just do it & Keep steady

댓글남기기