BOJ / Greedy / 동전 0 / Python
내 코드1
n, k = map(int, input().split())
coins = []
ans = 0
for _ in range(n):
coins.append(int(input()))
coins.sort(reverse=True)
for coin in coins:
ans += k // coin
k %= coin
print(ans)
우선 돈이 이상하게 남아버리는 경우는 없다는 걸 알고 있기 때문에 몫과 나머지만을 이용한다.
수정할 것
- k 보다 큰 동전의 경우 애초에 리스트에 넣지 않기
- .sort() 함수 쓸 필요없이 coins[-1] 이용하기
내 코드2
n, k = map(int, input().split())
coins = []
ans = 0
for _ in range(n):
num = int(input())
# k보다 작은 수일 경우 리스트에 넣기
if num <= k:
coins.append(num)
while k != 0:
# coins[-1] 이용
ans += k // coins[-1]
k = k % coins[-1]
# 마지막 값 pop
coins.pop()
print(ans)
실행시간이 줄었다 !
Author And Source
이 문제에 관하여(BOJ / Greedy / 동전 0 / Python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@k_dah/BOJ-11047-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)