C언어/문제은행

[7주차] 거스름돈

슈슈버거 2023. 7. 5. 17:34

문제


내가 작성한 코드

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

int main() {
    int coinnum, money;
    scanf("%d %d", &coinnum, &money);

    int coin[coinnum];
    int result[coinnum];

    for(int i = 0; i<coinnum; i++){
        scanf("%d", &coin[i]);
        result[i] = 0;
    }

    for(int i = 0; i<coinnum; i++){
        if(money == 0){
            break;
        }

        int num = 0;

        while(1){
            if((coin[i] * num) > money){
                num--;
                break;
            }
            else if((coin[i] * num) == money){
                break;
            }
            else{
                num++;
            }
        }

        money -= coin[i] * num;

        result[i] = num;
    }

    for(int i = 0; i<coinnum; i++){
        printf("%d\n", result[i]);
    }

    return 0;
}

 

동전을 저장해주는 int형 배열을 썼다

반복문을 통해 비싼 돈부터 차례대로 계산하게 해주었다.

반복문 내에서 동전의 개수, 개수를 곱한 금액, 그 금액을 뺀 나머지 거스름돈을 알 수 있다.