본문 바로가기
C/SWEA

[SWEA] #1970. 쉬운 거스름돈

by 단월໒꒱ 2021. 11. 6.

Difficulty 2

 

[문제]

 

 

 

[코드 및 결과]

 

 

 

#include <stdio.h>

int main(int argc, char** argv) {
    int money, T, result;
    int change[8] = {50000, 10000, 5000, 1000, 500, 100, 50, 10};
    
    scanf("%d", &T);
    
    for (int t = 1; t <= T; t++) {
        money = 0;
        scanf("%d", &money);
        
        printf("#%d\n", t);
        for (int j = 0; j < 8; j++) {
            result = money / change[j];
            money %= change[j];
            printf("%d ", result);
        }
        printf("\n");
    }
    return 0;
}

 

 

 

 

[설명]

손님에게 거슬러줘야할 금액 money, 테스트케이스 T, 각 돈의 종류마다 필요한 개수 result를 정수로 선언한다.

돈의 단위에 50000원, 10000원, 5000원, 1000원, 500원, 100원, 50원, 10원이 있으므로 각각을 배열 change의 값으로 저장한다.

일단 테스트케이스 T를 입력받고 for문으로 T번 반복되도록 반복문을 잡아준다.

그 안에서 거슬러줄 금액 money를 입력받는다.

다시 for문을 생성하여 필요한 돈의 개수를 구하는데, 일단 필요한 개수는 해당 금액으로 금액을 나눈 몫이므로 money를 change[j]로 / 연산하여 나온 값을 result에 저장한다.

money를 change[j]로 나눈 몫을 구하고 난 후에는 그 나머지 외엔 필요없으므로 money에 change[j]로 % 연산한 값을 저장해준다.

그 후 이번 단계에서 구한 result값을 출력한다.

change 배열에 속한 금액들로 위의 과정을 반복하면 구하고자 하는 결과를 얻을 수 있다.

 

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5PsIl6AXIDFAUq&categoryId=AV5PsIl6AXIDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=2&pageSize=10&pageIndex=2 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

 

'C > SWEA' 카테고리의 다른 글

[SWEA] #1984. 중간 평균값 구하기  (0) 2021.11.14
[SWEA] #2056. 연월일 달력  (0) 2021.11.14
[SWEA] #2046. 스탬프 찍기  (0) 2021.11.06
[SWEA] #1204. 최빈수 구하기  (0) 2021.10.10
[SWEA] #1933. 간단한 N의 약수  (0) 2021.10.07

댓글