백준 문제풀이/그리드

[백준] 11047 동전 0 - python

peach_h 2022. 11. 21. 15:35

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