You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
advent-of-code/2018/ruby/day_03.rb

28 lines
517 B

claims, fabric = ARGF
.read
.lines
.map(&:chomp)
.reject(&:empty?)
.each
.with_object([[], Hash.new {|h,k| h[k] = []}]) { |line, (claims, fabric)|
line =~ /^#(\d+) @ (\d+),(\d+): (\d+)x(\d+)$/
claim = $1.to_i
x = $2.to_i
y = $3.to_i
width = $4.to_i
height = $5.to_i
claims << claim
width.times {|dx|
height.times {|dy|
fabric[[y+dy, x+dx]] << claim
}
}
}
p claims.reject {|claim|
fabric.any? {|_,v|
v.length > 1 && v.include?(claim)
}
}