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 |