読者です 読者をやめる 読者になる 読者になる

300億円欲しい

メジャーリーグのデータ解析します

ARC005 A問題 大好き高橋くん

Haskellは光です。

問題

高橋君は自分が大好きなので、自分の評判を調べるために自分の名前が入っているツイートを調べたいと考えました。しかし彼のフォロー数は多いので、タイムラインを 1 つずつ確認して自分に関係あるつぶやきを探すのは面倒です。

 そこで高橋くんを手伝うために、与えられる文から高橋君を表す単語が現れる回数を数えてください。
 ただし、単語の一部に高橋君を表す単語を含んでいた場合も、高橋君を表す単語と完全に一致しない限り、その単語を高橋君を表す単語として数えないでください。

 以下の3単語が高橋君を表す単語です。
TAKAHASHIKUN(高橋君をヘボン式ローマ字にして、全て大文字にしたもの)
Takahashikun(高橋君をヘボン式ローマ字にして、先頭の 1 文字のみ大文字、残りは小文字にしたもの)
takahashikun(高橋君をヘボン式ローマ字にして、全て小文字にしたもの)

入力

入力は以下の形式で標準入力から与えられる。
N
w0 w1 … wN−1.
入力は 2 行ある。
1 行目には、2 行目に与えられる文に含まれる単語数を表す整数 N(1≦N≦50) が与えられる。
2 行目には 2 文字以上 100 文字以下の 1 文が与えられる。
文は単語 wi(0≦i≦N−1)から成り、各単語は空白で区切られている。
最後の単語 wN−1 の後には空白を挟まず . がある。
単語 wi(0≦i≦N−1) は英字(A-Z, a-z)で成り立っている。

出力

与えられた文の中で高橋君を表す単語が現れる回数を標準出力に 1 行で出力せよ。
なお、最後には改行を出力せよ。

http://arc005.contest.atcoder.jp/tasks/arc005_1

解答

一行で書けるんですね

main = interact $ (++"\n"). show . length . filter (`elem` ["takahashikun","Takahashikun", "TAKAHASHIKUN"]) . words . init . last . lines

C++コードは後で考えます。