Sha256: dacf9693adcbacdf15abc7981ce9c53cfda7bde6230b69d88918657a35b90094
Contents?: true
Size: 846 Bytes
Versions: 396
Compression:
Stored size: 846 Bytes
Contents
class Matrix attr_reader :rows, :columns def initialize(input) @rows = extract_rows(input) @columns = extract_columns(rows) end def saddle_points unless @saddle_points coordinates = [] rows.each_with_index do |row, j| max = row.max row.each_with_index do |number, i| min = columns[i].min if number == max && number == min coordinates << [j, i] end end end @saddle_points = coordinates end @saddle_points end private def extract_rows(s) s.split("\n").map do |row| row.split(' ').map(&:to_i) end end def extract_columns(rows) columns = [] rows.each do |row| row.each_with_index do |number, i| columns[i] ||= [] columns[i] << number end end columns end end
Version data entries
396 entries across 396 versions & 1 rubygems