Commit 44e8488

mo khan <mo@mokhan.ca>
2022-08-29 20:27:40
reconstruct queue by height
1 parent 5b225d4
Changed files (1)
misc
queue-reconstruct-by-height
misc/queue-reconstruct-by-height/main.rb
@@ -0,0 +1,20 @@
+#/usr/bin/env ruby
+
+def assert_equal(x, y)
+  raise "expected: #{x.inspect}, actual: #{y.inspect}" unless x == y
+end
+
+def reconstruct(input)
+  sorted = input.sort_by do |item|
+    [-item[0], item[1]]
+  end
+  result = []
+  sorted.each do |item|
+    result.insert(item[1], item)
+  end
+  result
+end
+
+input = [[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]
+output = [[5, 0], [7, 0], [5, 2], [6, 1], [4, 4], [7, 1]]
+assert_equal(output, reconstruct(input))