Atcorderに上がってたきもいRubyコード解読してみた

http://arc001.contest.atcoder.jp/submissions/4572

gets
gets
puts [*?1..?4].map{|c|$_.count c}.minmax.reverse*" "

問題は↓
http://arc001.contest.atcoder.jp/tasks/arc001_1

(irb)>>3
 => 3
>>?3
 => "3"
  • アスタリスクの後に配列を書くと配列が展開される。Rangeオブジェクトも展開される
(irb)>>a = [1,2,3]
 => [1, 2, 3]
>> [a]
 => [[1, 2, 3]]
>> [*a]
 => [1, 2, 3]
>> b = 1..3
 => 1..3
>> [*b]
 => [1, 2, 3]
>> b.to_a
 => [1, 2, 3]
  • getsの結果は自動的に$_に入る。perlのアレみたいなやつ
gets
puts $_
#省略しないで書くとこんな感じ?
input = STDIN.gets
puts input
  • String.count(arg)でargの文字を数える
(irb)>>"aaabbbbc".count(?b)
 => 4
  • Array#*はjoinみたいに使える
(irb)>>["つのだ","ひろ"]*"☆"
 => つのだ☆ひろ