알고리즘/baekjoon

baekjoon(11047-동전0)_ python

ash silver 2022. 5. 2. 17:48

1) 문제

 

 

2) 예시

3) 제출

import sys
input = sys.stdin.readline

n, k = map(int, input().split())
coin = [int(input()) for _ in range(n)]
cnt = 0

while k != 0:
    tmp = k // coin[len(coin) - 1]
    if tmp > 0:
        k -= tmp * coin[len(coin)-1]
        cnt += tmp
    coin.pop(len(coin)-1)

print(cnt)

4) 메모리/시간/코드길이

5) PLUS

(ash silver의 문제 해결 과정)

1. n, k를 split으로 한 번에 입력받기

2. coin 리스트를 반복문을 이용해 한 줄로 입력받기

3. cnt는 동전 최소 개수

4. k 원이 0이 되기 전까지 반복문 반복

-> 1. tmp에 k 원을 coin의 맨 뒤에 값으로 나누었을 때 몫을 저장

-> 2. 만약 tmp가 0 이상이면 (0 이하이면 k가 coin[]보다 큰 것),

       k원에서 tmp(k원을 coin으로 나눈 몫 = 동전 개수)와 coin을 곱한 값을 뺌

       cnt에 동전 개수 더해주기

-> 3. coin의 맨 마지막 값을 지워주기

-> 4. 동전의 개수인 cnt 출력