From 831d048ba23e2b518879be2773dd5abca74a8d3f Mon Sep 17 00:00:00 2001 From: Nat Lasseter Date: Fri, 6 Dec 2019 10:30:11 +0000 Subject: Day 06 --- day06/part2 | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100755 day06/part2 (limited to 'day06/part2') diff --git a/day06/part2 b/day06/part2 new file mode 100755 index 0000000..f7fdfb1 --- /dev/null +++ b/day06/part2 @@ -0,0 +1,42 @@ +#!/usr/bin/env ruby + +def get_depth_to(hsh, elm, to) + n = 0 + loop do + break if elm == to + n += 1 + elm = hsh[elm] + end + n +end + +def get_hier(hsh, elm) + hier = [elm] + loop do + break if elm == "COM" + elm = hsh[elm] + hier << elm + end + hier +end + +input = $stdin.readlines.map(&:strip).map{|x|x.split(")")} + +objects = {} + +input.each do |line| + objects[line[1]] = line[0] +end + +me_hier = get_hier(objects, "YOU") +santa_hier = get_hier(objects, "SAN") + +lca = nil +me_hier.each do |obj| + if santa_hier.include?(obj) then + lca = obj + break + end +end + +puts get_depth_to(objects, "YOU", lca) + get_depth_to(objects, "SAN", lca) - 2 -- cgit v1.2.3