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
문제에 주어진 화폐단위가 모두 배수임을 잘 활용하자 !
나누어 떨어지는 동전 문제를 풀 때는 무조건 제일 큰 단위부터 계산하기
그래서 입력받은 수들을 역으로 계산한다.
total을 coin에 들어있는 숫자들로 나누어지면 카운트가 올라가게함.
만약 total이 4300원이면, 4300//1000 == 4가 카운트 되고, total엔 나머지인 300이 들어가서
계속 for문이 도는 방식이다.
num , total = map(int,input().split())
coin = []
for i in range(num):
coin.append(int(input()))
count = 0
for i in reversed(range(num)):
count += total//coin[i]
total = total%coin[i]
print(count)
'백준 문제풀이 > 그리드' 카테고리의 다른 글
[백준] 10610 30 - python (0) | 2022.11.23 |
---|---|
[백준] 2875 대회 or 인턴 - python (0) | 2022.11.21 |