parent
7b117f5370
commit
1429b8312c
@ -0,0 +1,21 @@
|
|||||||
|
disk_map = DATA.read.chars.each_slice(2)
|
||||||
|
.flat_map.with_index {|(a,b),i|
|
||||||
|
[ Array.new(a.to_i, i), Array.new(b.to_i, nil) ]
|
||||||
|
}.reject(&:empty?)
|
||||||
|
|
||||||
|
while (prev, free = disk_map.each_cons(2).find { _2.include?(nil) })
|
||||||
|
tail = disk_map.last
|
||||||
|
until free.empty? || tail.empty?
|
||||||
|
prev << tail.shift
|
||||||
|
free.pop
|
||||||
|
end
|
||||||
|
|
||||||
|
while disk_map.last.all?(&:nil?)
|
||||||
|
disk_map.pop
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
pp disk_map.flatten.each.with_index.sum { _1 * _2 }
|
||||||
|
|
||||||
|
__END__
|
||||||
|
2333133121414131402
|
Loading…
Reference in new issue