C로 구현한 10162번 전자레인지 문제 풀이입니다.
https://www.acmicpc.net/problem/10162
#include <stdio.h>
int main() {
int t, arr[] = {300, 60, 10}, count[3] = {0,};
scanf("%d", &t);
if (t % 10 == 0) {
for(int i=0; i<3; i++) {
while (t>=arr[i]) {
t -= arr[i];
count[i] ++;
}
if(t == 0) {
break;
}
}
for (int i=0; i<3; i++) {
printf("%d ", count[i]);
}
} else {
printf("-1");
}
}
각 5분, 1분, 10초를 초단위로 배열에 저장하고, 각 초의 버튼을 누른 횟수 또한 선언한다.
반복문 내에서는 각 초의 버튼을 누른 횟수를 증가시키는데, 남은 시간이 해당 초보다 클 경우에 while문을 통해
반복적으로 수행한다. 남은 시간이 0 일 때 반복문을 빠져나와 각 초의 버튼을 누른 횟수를 출력한다.
'백준(C언어) 풀이 > 그리디(Greedy) 알고리즘' 카테고리의 다른 글
백준(C) 2720번 세탁소 사장 동혁 풀이 (0) | 2021.08.18 |
---|---|
백준(C) 14659번 한조서열정리하고옴ㅋㅋ 풀이 (0) | 2021.08.18 |
백준(C) 2437번 저울 풀이 (0) | 2021.08.06 |
백준(C) 2217번 로프 풀이 (0) | 2021.08.03 |
백준(C++) 2217번 로프 풀이 (0) | 2021.08.03 |