Problem Solving/BOJ

[백준 10162번] [그리디] 전자레인지

  • -
728x90
반응형

나누는 숫자들이 300, 60, 10이다.

다만, 이 숫자들은 배수 관계이므로 무조건 더 큰 것을 쓸 수 있으면 쓰는 것이 유리하다.

 

예를 들어 60 * 5나 10 * 30을 하는 것보다 300 1개 쓰는 것이 무조건 유리하다.

즉, 더 큰 단위로 표현할 수 있으면 무조건 해당하는 것부터 쓰는 것이 유리하다.

이 부분에서 그리디 문제임을 파악하면 된다. 쉽다

#include <bits/stdc++.h>
#define fastio ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

using namespace std;

int main(void){
    fastio;
    int n;
    cin >> n;
    if(n % 10 != 0){
        cout << -1 << "\n";
    }
    else{
        int check_1 = n / 300;
        int check_2 = (n - check_1 * 300) / 60;
        int check_3 = (n - check_1 * 300 - check_2 * 60) / 10;
        cout << check_1 << " " << check_2 << " " << check_3 << "\n";
    }

    return 0;
}

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.