관리 메뉴

cococo-coding

2720번. 세탁소 사장 동혁 (c++풀이) 본문

[BOJ] 코드 모음/C++_learning 문제집

2720번. 세탁소 사장 동혁 (c++풀이)

_dani 2024. 1. 14. 20:08

문제

풀이

1. 테스트케이스의 개수 t를 입력받는다. 이 t는 while문으로 돌려준다.

2. 각 테스트케이스별의 거스름돈c를 입력받는다. 

3. 거스름돈에 따른 쿼터, 다임, 니켈, 페니 개수를 구한다. 나는 change라는 함수로 구현했다.

함수 내용은 거스름돈을 쿼터(25)로 나눈 몫을 출력(쿼터의 개수) 하고

거스름돈을 쿼터(25)로 나눈 나머지를 새로운 거스름돈으로 넣어준다. 

이 루틴을 쿼터, 다임, 니켈, 페니까지 반복해준다.

이때 페니의 경우 거스름돈을 1로 나눈 몫만 존재한다. 

 

포인트

  • 거스름돈c를 나눈 몫이 동전의 개수가 된다.
  • 거스름돈c를 나눈 나머지가 새로운 거스름돈이 된다. (그래야 쿼터 -> 다임 -> 니켈 -> 페니 순으로 계산가능)

코드

#include <iostream>
using namespace std;

/*
    1. 테스트케이스의 개수 t를 입력받는다.
    2. 각 테스트케이스 별 거스름돈을 입력받는다. 
    3. 각 케이스별로 필요한 쿼터, 다임, 니켈, 페니의 수를 구한다.
    4. 위 동전들의 수를 출력한다.

*/

void change(int c) {
    //쿼터 25
    cout << c / 25 << " ";
    c %= 25;

    //다임 10
    cout << c / 10 << " ";
    c %= 10;

    //니켈
    cout << c / 5 << " ";
    c %= 5;

    //페니
    cout << c / 1 << endl;
}

int main() {
    //1
    int t;
    cin >> t;

    //2
    while (t--) {
        int c;
        cin >> c;

        //3 함수로 계산
        change(c);
    }

    return 0;
}