こんにちは。
今日はこちらの問題をやってみました。
列と行のそれぞれの合計を求めるプログラムです。
詳しい仕様は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メソッドで数字の間隔を揃えたり、「|」を各数字は配置し連結させました。