본문 바로가기

백준 write-up/정렬 & 그리디

[백준] 세탁소 사장 동혁 : 2720번 - Python

728x90
반응형

https://www.acmicpc.net/problem/2720

 

2720번: 세탁소 사장 동혁

각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다.

www.acmicpc.net

 

 

 

https://ye5ni.tistory.com/69  ===> 참고(비슷한 유형)

 

 

 

문제의 접근 방법

 

- 거스름돈 C원은 정수로 이루어져 있고 단위가 센트(1달러 = 100센트)이기 때문에 쿼터, 다임, 니켈, 페니도 같은 단위로 바꾸어주기

- 각 동전의 단위가 몇 개씩 쓰여야하는지 확인하기 위해 초기 값을 0으로 설정해두기

- C원을 25(쿼터), 10(다임), 5(니켈), 1(페니)순으로 나눈 몫을 갯수에 카운트하고 그 나머지를 그 다음으로 작은 단위로 또 나눠주는 과정을 4번 반복하기

- 동전의 가치는 내림차순 정렬하기(최소 개수를 구하기 위해서)

 

 

 

문제 풀이 방법

 

테스트 케이스 T개 입력받기 -> T개 만큼 반복문을 돌려 거스름돈 C원 입력받기 -> 쿼터(q), 다임(d), 니켈(n), 페니(p)의 초기 값을 0으로 선언해주기 -> 단위가 큰 쿼터(q)부터 입력받은 거스름돈 C원을 나눈 몫을 q에 저장하고 다시 그 나머지를 C에 저장하기 -> 앞 과정을 동전의 가치의 개수(4개)만큼 반복해서 거슬러주는 데에 쓰인 q, d, n, p 동전의 개수를 각각 출력해주기!

 

 

 

소스코드

T = int(input())

for _ in range(T):
    C = int(input())
    
    q = d = n = p =0
    q = C // 25
    C %= 25
    d = C // 10
    C %= 10
    n = C // 5
    C %= 5
    p = C // 1
    C %= 1
    
    print(q, d, n, p)
728x90
반응형