くんすとの備忘録

IT系技術メモ

移転しました。

15秒後に自動的にリダイレクトします。

paizaオンラインハッカソン5をbashワンライナーで説いてみた(MINAMIルート)

paiza.jp

幼なじみルートの最終問題の解答例です。

read X Y && awk -v x=$X -v y=$Y '{for(i=0;i<NF;i++){a[i]=a[i] " " $(i+1);if(NR==y)print a[i]}}' | rev | tr -d '2' | sed 's/^0\+//g' |  awk -v x=$X -v y=$Y '{for(i=0;i<y;i++){n=i%y;a[n]=a[n] " " 0+$(y-i);if(NR==x)print a[n]}}' | sed 's/^ //g'

90度ずらしてからtrで左詰めして、また元に戻しながらゼロ埋めする、という解法です。

無理矢理感激しい……