ABC471 B - Survey Tabulation
アンケート集計
考え方
指示通り、同内容の回答数をカウンティングすればよい。
問題は $2$ 点。
$1$ つは、回答の大文字小文字を区別せずに数えなければならないこと。
これは、全ての回答を小文字に(または大文字に)統一してしまえばよい。
$1$ 文字ずつ見て、isupper(c) で大文字かどうか判定し、c += 'a'-'A'; で小文字化する。
もう $1$ つは、票の内容が文字列であること。
カウンティングでよく行う、$i$ があったら配列の $i$ 番目を $1$ 増やす方法が使えない。
これは map を使うことで解決する。
その後最大回答数を調べるときには、範囲for文を用いればよい。
入力例1での動作
入力を受け取る。
n: 7
s: {"ARC", "abc", "ahc", "ABC", "beginner", "AbC", "ahc"}
回答を順に小文字化すると、次のようになる。
| 元の回答 | 小文字化後 |
|---|---|
ARC |
arc |
abc |
abc |
ahc |
ahc |
ABC |
abc |
beginner |
beginner |
AbC |
abc |
ahc |
ahc |
これらを map で数えると、各回答数は次のようになる。
| 回答 | 回答数 |
|---|---|
abc |
3 |
ahc |
2 |
arc |
1 |
beginner |
1 |
このなかの最大値は $3$ なので、答えは $3$ である。
注意点
特になし。
別解
特になし。