Skip to content

Commit 8dd1ac8

Browse files
committed
15720 카우버거
1 parent 27dccd9 commit 8dd1ac8

File tree

1 file changed

+47
-31
lines changed

1 file changed

+47
-31
lines changed

src/main/java/greedy/silver/silver_5/_15720.java

Lines changed: 47 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.StringTokenizer;
77

88
public class _15720 {
9+
910
public static void main(String[] args) throws IOException {
1011
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
1112
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
@@ -15,45 +16,60 @@ public static void main(String[] args) throws IOException {
1516
int c = Integer.parseInt(st.nextToken());
1617
int d = Integer.parseInt(st.nextToken());
1718

18-
int min = Math.min(b, Math.min(c, d));
19-
int totalPrice = 0;
20-
int discountPrice = 0;
21-
int price = 0;
19+
Integer[] burger = readIntArray(br.readLine(), b);
20+
Integer[] sideMenu = readIntArray(br.readLine(), c);
21+
Integer[] beverage = readIntArray(br.readLine(), d);
2222

23-
Integer[] burger = new Integer[b];
24-
Integer[] sideMenu = new Integer[c];
25-
Integer[] beverage = new Integer[d];
23+
int totalPrice = sum(burger) + sum(sideMenu) + sum(beverage);
2624

27-
st = new StringTokenizer(br.readLine());
28-
for (int i = 0; i < b; i++) {
29-
burger[i] = Integer.parseInt(st.nextToken());
30-
totalPrice += burger[i];
31-
}
32-
Arrays.sort(burger, Collections.reverseOrder());
25+
sortDesc(burger);
26+
sortDesc(sideMenu);
27+
sortDesc(beverage);
3328

34-
st = new StringTokenizer(br.readLine());
35-
for (int i = 0; i < c; i++) {
36-
sideMenu[i] = Integer.parseInt(st.nextToken());
37-
totalPrice += sideMenu[i];
38-
}
39-
Arrays.sort(sideMenu, Collections.reverseOrder());
29+
int discountPrice = 0;
30+
int burgerSetCount = Math.min(b, Math.min(c, d));
4031

41-
st = new StringTokenizer(br.readLine());
42-
for (int i = 0; i < d; i++) {
43-
beverage[i] = Integer.parseInt(st.nextToken());
44-
totalPrice += beverage[i];
32+
for (int i = 0; i < burgerSetCount; i++) {
33+
int setSum = burger[i] + sideMenu[i] + beverage[i];
34+
discountPrice += (setSum * 9) / 10;
4535
}
46-
Arrays.sort(beverage, Collections.reverseOrder());
4736

48-
for (int i = 0; i < min; i++)
49-
discountPrice += (int) ((burger[i] + sideMenu[i] + beverage[i]) * 0.9);
37+
discountPrice += sumFrom(burger, burgerSetCount);
38+
discountPrice += sumFrom(sideMenu, burgerSetCount);
39+
discountPrice += sumFrom(beverage, burgerSetCount);
5040

51-
for (int i = min; i < b; i++) price += burger[i];
52-
for (int i = min; i < c; i++) price += sideMenu[i];
53-
for (int i = min; i < d; i++) price += beverage[i];
54-
55-
bw.write(totalPrice + "\n" + (discountPrice + price));
41+
bw.write(totalPrice + "\n" + discountPrice);
5642
bw.flush();
5743
bw.close();
5844
}
45+
46+
private static Integer[] readIntArray(String line, int n) {
47+
Integer[] arr = new Integer[n];
48+
StringTokenizer st = new StringTokenizer(line);
49+
for (int i = 0; i < n; i++) {
50+
arr[i] = Integer.parseInt(st.nextToken());
51+
}
52+
return arr;
53+
}
54+
55+
private static void sortDesc(Integer[] arr) {
56+
Arrays.sort(arr, Collections.reverseOrder());
57+
}
58+
59+
private static int sum(Integer[] arr) {
60+
int s = 0;
61+
for (int v : arr) {
62+
s += v;
63+
}
64+
return s;
65+
}
66+
67+
private static int sumFrom(Integer[] arr, int from) {
68+
int s = 0;
69+
for (int i = from; i < arr.length; i++) {
70+
s += arr[i];
71+
}
72+
return s;
73+
}
74+
5975
}

0 commit comments

Comments
 (0)