rubyで列と行の合計を求めるプログラムを作ってみた。

こんにちは。

今日はこちらの問題をやってみました。

列と行のそれぞれの合計を求めるプログラムです。

詳しい仕様はURLをご覧ください。

コード

このようになりました。

class SumMatrix

attr_reader :array_num

def initialize(array_num)
@array_num = array_num
end

def sum #列と行のそれぞれの合計を出し配列に加える
@array_num.each { |column| column << column.sum }
@array_num << @array_num.transpose.map(&:sum)
end

def output #各配列を連結して出力する
sum.each { |array|
puts array.map { |n| n.to_s.rjust(3) }.join('|')
}
end
end

解説

sumメソッドは合計を出すのが目的だったので各配列にsumメソッドを使いました。

行の合計を出すときはmapを使い合計を配列にし返し、それをそのまま@array_sumに加えました。

outputメソッドは出力が目的です。

eachメソッドで数字の間隔を揃えたり、「|」を各数字は配置し連結させました。