PS

백준 10162. 전자레인지

tose33 2021. 8. 6. 15:02

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

 

10162번: 전자레인지

3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은

www.acmicpc.net

 

이전 동전문제 처럼 전형적인 그리디문제.

이전 동전문제와 유일하게 다른점은 3개의 버튼으로 정확히 시간을 맞출수 없으면 -1을 출력해야한다.

버튼시간만큼 t에서 빼는데 모든 계산이 끝난후 t가 0이 아니라면 -1을 출력하면된다.

 

#include <iostream>
using namespace std;

int t;
int button[3] = {300,60,10};

int main()
{
    cin >> t;

    int cnt[3] = {0,};
    for(int i = 0; i < 3; i++)
    {
        while(t >= button[i])
        {
            t -= button[i];
            cnt[i]++;
        }
    }

    if(t == 0)
    {
        for(int i = 0; i < 3; i++)
            cout << cnt[i] << ' ';
    }
    else
        cout << -1;


}