컴굥일지

[BOJ/백준 10162][C++] 전자레인지 본문

알고리즘/코테 문제

[BOJ/백준 10162][C++] 전자레인지

gyong 2022. 4. 22. 22:24
반응형

문제

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

백준 10162

백준 10162

 

문제 내용

전자레인지 버튼을 최소한으로 눌러서 시간을 맞추어야 한다.

시간의 단위는 A버튼 300초, B버튼 60초, C버튼 10초이다.

A, B, C 버튼으로 시간을 정확히 맞출 수 없다면 -1을 출력한다.

 

문제 풀이

버튼의 시간이 서로 배수관계에 있으므로 greedy 문제이다.

일단 10으로 나누었을 때, 나머지가 발생한다면 -1을 출력하고 프로그램을 끝낸다.

그렇지 않으면 300초, 60초, 10초를 차례로 나눠가며 계산하면 된다.

 

코드

#include <iostream>
using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	//입력
	int num;
	cin >> num;

	if (num % 10 != 0) {
		cout << -1 << '\n';
		return 0;
	}

	int a = num / 300;
	num %= 300;

	int b = num / 60;
	num %= 60;

	int c = num / 10;

	//결과 출력
	cout << a << ' ' << b << ' ' << c << '\n';
}
반응형
Comments