www.acmicpc.net/problem/10162

 

10162번: 전자레인지

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

www.acmicpc.net

이 문제를 보니 대표적인 그리디 문제라고 판단되어졌다. 많은 연습끝에 이 문제가 쉬워보였다.

결국 동전 대신 5분 1분 10초 가 있는것! 

1.입력 값은 초 단위니까 단위를 맞춰주기위해 5분을 300초로 1분을 60초로 변환 후 3칸짜리 배열에 넣어준다.

2. 각 버튼이 몇번 사용됬는지를 체크하기위해 배열을 하나 더 사용하였더니 쉬웠다!

 

package test;

import java.util.Scanner;
public class test {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int[] abc = new int[] {300,60,10};
        //초단위 변환 후 배열 초기화
		int[] tmp = new int[3];
        //횟수를 저장하기위한 배열
		int t = sc.nextInt();
		int na = t;
		
		for(int i=0;i<abc.length;i++) {
			if((na%abc[2])!=0) {
				System.out.println("-1");
				break;
                //10으로 나누었을때 나머지가 0이아니라면 나눠지지 않는다는 뜻이니까 -1
			}
			else {
				tmp[i] = na/abc[i];
                //몫=횟수를 저장
				na %= abc[i];
				System.out.print(tmp[i]+" ");
			}
		}
}
}

열심히 달려봅시다!!~

'알고리즘 with 자바 > 그리디' 카테고리의 다른 글

백준 4796 : 캠핑 - JAVA  (0) 2021.03.18
백준 2217 : 로프 - JAVA  (0) 2021.03.17
백준 1541 : 잃어버린 괄호 - JAVA  (0) 2021.03.16
백준 5585 : 거스름돈 - JAVA  (0) 2021.03.16
백준 11047 : 동전 0 - JAVA  (0) 2021.02.16

+ Recent posts