Algorithm/BOJ
[BOJ]10162 전자레인지
Game Client Lee Hwanguk
2023. 2. 5. 15:03
https://www.acmicpc.net/problem/10162
10162번: 전자레인지
3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은
www.acmicpc.net
#브루투포스처럼 완전탐색이지만 그 중에서 최적의 답을 찾으라는건 그리디를 이용하라는 말이었다
#그리디
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp18
{
internal class Program
{
static void Main(string[] args)
{
//[BOJ]10162 그리디알고리즘
StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
int[] arr = new int[3]; //[0]300,[1]60,[2]10
int T=int.Parse(sr.ReadLine());
bool fail=false;
while(T>0)
{
if (T>=300) //300이상?
{
T -= 300;
arr[0]++;
}
else if(T<300&&T>=60) //300보다작고 60이상?
{
T -= 60;
arr[1]++;
}
else if(T<60&&T>=10) //50보다 작고 10이상?
{
T -= 10;
arr[2]++;
}
//3가지 경우로 T를 맞출수없다면? false
else
{
fail = true;
break;
}
}
if(!fail)
{
for(int i=0; i<arr.Length; i++)
{
sw.Write("{0} ",arr[i]);
}
}
else
{
sw.Write(-1);
}
sr.Close();
sw.Close();
}
}
}
#신난다