ほぼ静的な計画法

競技プログラミングで解いた問題の解法とコードを晒していくページ。ややマイナーなC♯。

AOJ 0242 (Input Candidates : 入力候補)

【問題】

https://onlinejudge.u-aizu.ac.jp/problems/0242

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0242

【解説】

文字列の出現個数をDictionaryで管理して、条件に該当する文字列を出力すればよい。

Linqとの相性がよく、以下の通り簡潔に処理の記述が可能。Linqの練習には良い問題。

  1. 指定文字を頭文字に持つ単語を⇒Where(先頭が指定文字)
  2. 出現数の順に⇒OrderByDescending(出現数)
  3. 出現数が同じ単語が複数ある場合は、辞書式順序で⇒ThenBy(文字列)
  4. 出力する単語は最大5つまで⇒Take(Dictionaryの個数 と 5のうち小さいほう)
【コード】