回答編集履歴

4

修正

2017/09/24 14:09

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -62,7 +62,7 @@
62
62
 
63
63
  ```Java
64
64
 
65
- int[] workCountTable = new int[countTable.length];
65
+ int[] workCountTable = new int[countTable.length()];
66
66
 
67
67
  deepCopy(countTable, workCountTable);
68
68
 
@@ -90,7 +90,7 @@
90
90
 
91
91
 
92
92
 
93
- 未検証です。`getArgMax`はご自身で実装してみてください。
93
+ 未検証です。`deepCopy` `getArgMax`はご自身で実装してみてください。
94
94
 
95
95
 
96
96
 

3

追記

2017/09/24 14:09

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -54,6 +54,48 @@
54
54
 
55
55
 
56
56
 
57
+ 追記
58
+
59
+ ---
60
+
61
+ 『それ、出来ないよ』で片づけてしまうのもなんとも申し訳ないので、一つの解法を示します。
62
+
63
+ ```Java
64
+
65
+ int[] workCountTable = new int[countTable.length];
66
+
67
+ deepCopy(countTable, workCountTable);
68
+
69
+
70
+
71
+ for(int i = 0; i < 10; i++) {
72
+
73
+ int argMax = getArgMax(workCountTable);
74
+
75
+ int max = workCountTable[argMax];
76
+
77
+
78
+
79
+ if(max == 0) break;
80
+
81
+
82
+
83
+ System.out.println("第" + (i+1) + "位: " + char(argMax) + ": " + max + "回");
84
+
85
+ workCountTable[argMax] = 0;
86
+
87
+ }
88
+
89
+ ```
90
+
91
+
92
+
93
+ 未検証です。`getArgMax`はご自身で実装してみてください。
94
+
95
+
96
+
97
+ 重要
98
+
57
99
  ---
58
100
 
59
101
  teratailには、コードを見やすく表示する機能があります。

2

追記

2017/09/24 14:09

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -44,6 +44,18 @@
44
44
 
45
45
  ---
46
46
 
47
+ よく考えたら、この方針は無理がありそうです。
48
+
49
+ 配列の添え字にアルファベットを当てはめているのですから、ソートするとその情報が消えます。
50
+
51
+ 確かに上位10位までの出現頻度は表示できるかもしれません。
52
+
53
+ ただし、実際の上位の文字はわからないままです。
54
+
55
+
56
+
57
+ ---
58
+
47
59
  teratailには、コードを見やすく表示する機能があります。
48
60
 
49
61
  質問の編集画面を開き、コードを選択した状態で<code>ボタンを押してください。

1

追記

2017/09/24 12:37

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -39,3 +39,13 @@
39
39
 
40
40
 
41
41
  あとあれですね、バブルソートはメソッドとして切り出した方がいいです。
42
+
43
+
44
+
45
+ ---
46
+
47
+ teratailには、コードを見やすく表示する機能があります。
48
+
49
+ 質問の編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
50
+
51
+ 右側にプレビューが表示されるので、それを参照して見やすい質問を心掛けてください。