그리디 알고리즘
주어진 A, B, C(지정된 시간) 중 제일 큰 숫자부터 들어가게 하면 최소값을 구할 수 있다. 이 때 C로 나눌 수 없는 값들은 A, B로도 나눌 수 없기 때문에 '-1'을 출력해주면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
solved(N);
}
static void solved(int N) {
int A = 0 ,B = 0,C = 0;
while(N>=10) {
if(N>=300) {
A = N/300;
N %= 300;
} else if(N>=60) {
B = N/60;
N %= 60;
} else {
C = N/10;
N %= 10;
}
}
if(N!=0) {
System.out.println(-1);
} else {
System.out.println(A + " " + B + " " + C);
}
}
}
|
cs |
'Coding > 백준' 카테고리의 다른 글
1789번 수들의 합 (java) (0) | 2021.07.07 |
---|---|
1339번 단어 수학 (0) | 2021.05.20 |
2217번 로프 (0) | 2021.05.03 |
2839번 설탕 배달 (0) | 2021.04.26 |
1008번 A/B (0) | 2021.03.13 |