반응형
문제 링크 : https://www.acmicpc.net/problem/11047
11047번: 동전 0
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)
www.acmicpc.net
풀이
n,k = map(int,input().split())
answer = 0
coin_list = []
# n번 반복
for i in range(n):
coin_list.append(int(input()))
# 순서바꾸기
coin_list = coin_list[::-1]
for j in coin_list:
if k//j:
answer += k//j
k = k%j
else:
pass
print(answer)
- 동전의 가치를 역순으로 바꾼 뒤 K원을 나눴을 경우 몫이 0이상이라면 몫 만큼 동전의 개수를 더하고 K는 그 나머지로 갱신한다.
ps. 만약 나머지가 0이라면 반복문을 종료하는 것이 시간복잡도를 줄이는 데 도움이 될 것이다.
반응형
'알고리즘' 카테고리의 다른 글
[BOJ/백트래킹] N과 M (2) (0) | 2023.05.23 |
---|---|
[BOJ/완전탐색] 1018 체스판 다시 칠하기 (0) | 2023.05.23 |
[BOJ/그리디] 1931 회의실배정 (0) | 2023.05.15 |
[BOJ/그리디] 13305 주유소 (0) | 2023.05.15 |
[BOJ/그리디] 1541 잃어버린 괄호 (0) | 2023.05.15 |