回答編集履歴
1
ソースの訂正&説明の追加
answer
CHANGED
@@ -26,8 +26,49 @@
|
|
26
26
|
すみませんがもう少し詳しく説明していただけませんか?
|
27
27
|
よろしくお願いします。
|
28
28
|
|
29
|
+
<追記>
|
30
|
+
問題の意味が分かったので私か書いたソース(一番下にある)の説明をしたいと思います。
|
29
31
|
```Java
|
32
|
+
String []color = new String[n];
|
33
|
+
int []color_num = new int[n];
|
34
|
+
String []color2 = new String[m];
|
35
|
+
int []color2_num = new int[m];
|
36
|
+
```
|
37
|
+
|
38
|
+
上から順に必要な色の 名前・個数
|
39
|
+
所持している色の 名前・個数
|
40
|
+
となります。
|
41
|
+
|
42
|
+
```Java
|
43
|
+
for(int i = 0; i < n; i++){
|
44
|
+
for(int j = 0; j < m; j++){
|
45
|
+
if(color[i].equals(color2[j])){
|
46
|
+
array.add(color2_num[j] / color_num[i]);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
```
|
52
|
+
これはn個の色の名前を一つずつ m個の所持している色と名称が同じかどうかチェックしています。
|
53
|
+
同じなら(例えば質問欄にあったaoにしましょう.)所持している個数(今回は20個)と
|
54
|
+
必要な個数(今回は3個)で20 / 3 = 6組できます。
|
55
|
+
この操作をfor文で全通りやります。それぞれの色が何組できるかListに格納しましょう。
|
56
|
+
|
57
|
+
```Java
|
58
|
+
Collections.sort(array);
|
59
|
+
```
|
60
|
+
これを使うとListに格納したデータを昇順にソートすることができます。
|
61
|
+
昇順にソートすると最小値が一番最初 つまり0番目に来ます。
|
62
|
+
この0番目を結果として表示すれば完了です!!
|
63
|
+
|
64
|
+
以上
|
65
|
+
|
66
|
+
私が書いたソースコードを載せます。
|
67
|
+
|
68
|
+
```Java
|
30
69
|
import java.util.Scanner;
|
70
|
+
import java.util.ArrayList;
|
71
|
+
import java.util.Collections;
|
31
72
|
|
32
73
|
public class Main{
|
33
74
|
public static void main(String[] args){
|
@@ -55,12 +96,16 @@
|
|
55
96
|
color2[i] = resultArray[0];
|
56
97
|
color2_num[i] = Integer.parseInt(resultArray[1]);
|
57
98
|
}
|
99
|
+
ArrayList<Integer> array = new ArrayList<>();
|
58
100
|
for(int i = 0; i < n; i++){
|
101
|
+
for(int j = 0; j < m; j++){
|
102
|
+
if(color[i].equals(color2[j])){
|
59
|
-
|
103
|
+
array.add(color2_num[j] / color_num[i]);
|
104
|
+
}
|
105
|
+
}
|
60
106
|
}
|
61
|
-
|
107
|
+
Collections.sort(array);
|
62
|
-
|
108
|
+
System.out.println(array.get(0));
|
63
|
-
}
|
64
109
|
}
|
65
110
|
}
|
66
111
|
```
|