반응형
https://www.acmicpc.net/problem/10162
- 문제
- 문제 풀이
백준 10162번 전자레인지는 브론즈 4 난이도의 수학 및 구현 문제이다. 이 문제에서 태그 된 알고리즘 분류를 보면 그리디 알고리즘도 같이 태그 되어 있지만 그리디는 아직 잘 모르므로 얘기하지 않도록 하겠다.
이 문제에서는 전자레인지에 버튼 3개가 달려있다. A, B, C 버튼이 있는데 누르면 각각 5분, 1분, 10초씩 추가된다. 그리고 문제에서는 입력으로 요리시간이 주어진다. 이 요리시간이 주어졌을 때 최소 버튼 조작의 A B C 횟수를 구해야 한다.
우선 초로 나타내면 A는 300초, B는 60초, C는 10초이다. 따라서 요리시간을 10으로 나눴을 때 나머지가 존재하면 그 시간을 정확하게 맞출 수 없으므로 -1을 출력해주면 된다.
그리고 요리시간이 300 이상이면 300을 빼주고 60 이상이면 60을 빼주고 10 이상이면 10을 빼주면서 각각의 카운트만 새면 된다.
- 코드
import java.io.*;
import java.util.*;
public class Main {
static int a;
static int b;
static int c;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
a = 0;
b=0;
c=0;
if (n % 10 != 0) {
System.out.print(-1);
return;
}
f(n);
System.out.print(a + " " + b + " " + c);
}
static void f(int n) {
if (n == 0) return;
if (n >= 300) {
n-= 300;
a++;
f(n);
} else if (n >= 60) {
n-=60;
b++;
f(n);
} else {
n-= 10;
c++;
f(n);
}
}
}
- 후기
이 문제를 통해 오랜만에 재귀 함수를 써봤다.
반응형
'백준' 카테고리의 다른 글
[백준] 2576번 : 홀수 – JAVA [자바] (0) | 2022.04.26 |
---|---|
[백준] 5338번 : 마이크로소프트 로고 – JAVA [자바] (0) | 2022.04.26 |
[백준] 5086번 : 배수와 약수 – JAVA [자바] (0) | 2022.04.26 |
[백준] 1009번 : 분산처리 – JAVA [자바] (0) | 2022.04.26 |
[백준] 2455번 : 지능형 기차 – JAVA [자바] (0) | 2022.04.26 |
댓글