2015C言語やJava、PHP、Ruby、Haskell、JavaScriptなどのプログラミング言語を使って4つのお題を解く内容らしい。ルールなどは下記のリンクで。参戦期間は終了している。AtCoderプログラマの端くれであるし、シェル芸人の端くれでいるつもりなので、bashで解いてみよう。反則な気もするがTukubaiコマンドも便利なので解禁で。ちなみにTukubaiコマンドとは、ユニケージ開発手法で利用されているコマンド群のこと。これがあるとCUIでのオペレーションやテキストデータの操作が格段に便利になること請け合い。Tukubaiコマンドマニュアル環境いつものように回答はMacで。問題は標準入力からデータを入れるらしい。回答は標準出力へ回答を吐き出せばいいのかな?と判断。4つの問題を順次解いてみる。問題の詳しい内容はリンクから参照いただきたい。AtCoder問題の趣旨は、入力された文字列の最後に's'をくっつけること。カキ[http://abc029.contest.atcoder.jp/tasks/abc029_b:title]文字'r'が含まれる行数を数える。-lの合わせ技でオケ。-dコマンドは余計な空白を削除するため。Mac標準wcコマンドだと、頭に余計な空白が出てしまう。-lコマンドか、Tukubaiのgyoコマンドだと余計な空白が出なくてスッキリ。-cオプションを思い出してしまい・・・あらま簡単。AtCoderabcの3文字を使って長さN文字の組み合わせを出す。ポイントは「組み合わせ全列挙」。再起呼び出しとか多重ループとか使うことになると思うが・・・さてどうするか?ここでTukubaiの必殺loopxコマンド登場。データが入ったファイルを指定すると、組み合わせ全列挙してくれる。今回の問題は、最後の例のように、一行ごとにabcが書かれたファイルをN回指定してやればよさそう。cあとは指定した回数だけファイル名を呼び出すにはどうするか?これはyesコマンドとheadコマンドの組み合わせでオケ。alphaということで回答。abcのデータが入った一時ファイルを作成。一時ファイルのファイル名を、指定した回数だけ列挙してloopxコマンドで組み合わせ全列挙。