알고리즘/백준

[BaekJoon] 백준 10162번 _ 전자레인지 for JAVA _ 그리디 알고리즘

정석이 2022. 1. 19. 17:49

 

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

 

10162번: 전자레인지

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

www.acmicpc.net

 

 

 

문제

 

 

 


 

위의 문제는 전에 풀었던 거스름돈과 비슷한 문제이다.

 

 

좀 더 깔끔하게 짜보려고 했는데

 

조건이 몇 번씩 누르는지 각자 출력이고, 나누어지지 않으면 -1 출력이기 때문에 또다시 노가다로 표현했다.

 

 

 

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Baek10162 {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(br.readLine());
		
		int countA = 0, countB = 0, countC = 0;
		
		countA = T / 300;
		countB = (T % 300) / 60;
		countC = (T % 300 % 60) / 10;
		if((T % 300 % 60 % 10) != 0) System.out.println("-1");
		else {
			System.out.println(countA + " " + countB + " " + countC);
		}
	}
}

 

 

아주 무난한 코드이다.

 

계산 어차피 3번밖에 안하니까 걍 변수에 저장 따로 안하고 %% 일케 썼다.

 

 

 

 

 

성능

 

 

채점이 하도 느려서 뭐 초과됐나 했더니 100점이긴 하다.

 

 

 

 


 

 

남의 코드 살펴보기

 

 

 

 

 

 

 

 

 

아하..... 거스름돈에서 본 깔끔한 코드에서 몇부분만 추가해줬다.

 

 

큼큼....

 

 

 

ans라는 새로운 배열을 만들어서 출력할 몫 값을 저장해두고 출력하였다.