#!/usr/bin/env ruby # frozen_string_literal: true require_relative "grid" class Main def run data = [] $stdin.each_line do |line| data << line.chomp end @sum = 0 grid = Grid.new(data) (0...grid.rows.size).each do |row_index| (0...grid.columns.size).each do |column_index| next unless grid.cell_at(row_index, column_index).value == "@" memo = grid.cell_at(row_index, column_index).neighbours.reject do |cell| grid.cell_at(cell.row, cell.column).value != "@" end if memo.size < 4 @sum += 1 end end end puts @sum end end Main.new.run