백준(C언어) 풀이/그리디(Greedy) 알고리즘

백준(C) 2720번 세탁소 사장 동혁 풀이

개발윗미 2021. 8. 18. 10:38

C로 구현한 2720번 세탁소 사장 동혁 문제 풀이입니다.

 

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

 

2720번: 세탁소 사장 동혁

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

www.acmicpc.net


#include <stdio.h>

int main() {
	int t, arr[]={25, 10, 5, 1}, count[4] = {0,};
	int c;
	scanf("%d", &t);
	for(int i=0; i<t; i++) {
		scanf("%d", &c);
		for(int j=0; j<4; j++) {
			while(c >= arr[j]) {
				c -= arr[j];
				count[j] ++;
			}
			if(c == 0) {
				break;
			}
		}
		for(int j=0; j<4; j++) {
			printf("%d ", count[j]);
			count[j] = 0;
		}
		printf("\n");
	}
}

 

배열 arr 에 각 0.25달러, 0.10달러, 0.05달러, 0.01달러를 각각 센트단위로 저장하고 결과적으로 필요한 쿼터의 개수,

 

다임의 개수, 니켈의 개수, 페니의 개수를 담을 count배열 또한 선언한다.

 

반복문 내에서는 각 센트에 대하여 남은 거스름돈이 더 클 경우 거스름돈에서 해당 인덱스 값을 빼고 

 

해당 인덱스 값의 count를 증가시킨다.

 

남은 거스름돈이 0 일 경우 반복문을 빠져나와 최종적으로 쿼터, 다임, 니켈, 페니의 개수를 출력한다.