ABC179を解いてみる(B問題まで)
A - Plural Form
一旦入力をそのまま出力し、末尾がsであるかどうかを判断するのが初心者には楽。変数sの末尾1文字は${s: -1}
で取り出せる。スペースは必須。
read s echo -n $s [ ${s: -1} = "s" ] && echo es || echo s
B - Go to Jail
この程度であればBashでもループで探索できはするが、せっかくなのでもう少し凝ったやり方を。
入力例1を使って試してみる。最初に先頭1行は使わないのでtail
を使って消し、以降の入力のスペースを-(マイナス)に置換する。
tail -n +2 | tr ' ' '-'
1-2 6-6 4-4 3-3 3-2
次にbc
を使って計算する。
tail -n +2 | tr ' ' '-' | bc
-1 0 0 0 1
あとは0が3連続しているかを確認すればよい。面倒なので改行を削除し、grep
で000とマッチするか判断する。grep
の結果を三項演算子もどきで処理してやれば終わり!
tail -n +2 | tr ' ' '-' | bc | tr -d '\n' | grep -q "000" && echo "Yes" || echo "No"
C問題以降についてはTLEする匂いしかしないので一旦ここまで。