From 930491c840e8c8a7a043f38d146e4cd5ac54bcbc Mon Sep 17 00:00:00 2001 From: Brian Buller Date: Fri, 6 Dec 2019 08:00:17 -0600 Subject: [PATCH] 2019 Day 6 Complete! --- 2019/day06/input | 985 ++++++++++++++++++++++++++++++++++++++++++ 2019/day06/main.go | 162 +++++++ 2019/day06/testinput | 11 + 2019/day06/testinput2 | 13 + 4 files changed, 1171 insertions(+) create mode 100644 2019/day06/input create mode 100644 2019/day06/main.go create mode 100644 2019/day06/testinput create mode 100644 2019/day06/testinput2 diff --git a/2019/day06/input b/2019/day06/input new file mode 100644 index 0000000..7ab9ef5 --- /dev/null +++ b/2019/day06/input @@ -0,0 +1,985 @@ +PJK)X3G +ZM3)JGN +YYF)614 +K5T)X18 +2PT)2BR +4RF)VL2 +QQN)7S4 +X9S)HM9 +NMG)DH5 +TQD)SJD +2JD)SM4 +5SD)4NG +W1R)XYJ +DXF)72L +CGN)T85 +ZF4)ZZ1 +91Q)Y69 +SMB)QSZ +PVN)PP3 +C4S)1VL +3BK)ZNZ +LYZ)92X +TPP)XPP +NTK)R7B +XMH)GBQ +LZW)49Y +28R)R1G +5SX)F2K +X21)WC7 +JL7)ZKL +F1G)XF8 +XJG)N8L +227)HBK +FG8)RMS +S5B)RXD +T71)LDZ +TYQ)2LW +1W2)BFQ +2X1)NCQ +SJL)TG5 +64W)RKB +DRH)W45 +ZTK)YC5 +L1Y)VXS +SGD)F66 +ZBG)YJ7 +NC6)544 +XKQ)8Z5 +B5K)XFW +V3F)SF9 +DC7)737 +ZCJ)ZCB +JPX)FZS +PFB)TYQ +C22)HGM +C67)MDM +4W1)X87 +TQX)7YM +2Y4)CLQ +R1G)M5V +HK5)56W +Y7B)8RN +LFR)FN6 +RVW)7G3 +SXH)97Y +H25)WHC +X8Y)3H8 +97Y)77T +6VB)91Q +V7S)595 +JFH)2JD +ZSL)HHS +3D6)T71 +1BP)MCR +FBQ)2PB +7Q9)K1X +C81)6JF +YYQ)9FR +FBR)GZS +VXK)4BR +Z9L)DYJ +PRL)K2Y +Q68)R8F +WJC)WZ5 +H3K)3NG +K9N)BG4 +VXS)RLT +K1Q)R29 +C76)TNL +RLV)PCY +Z4J)2GC +4F2)SC2 +Y82)JKM +GZS)Q1Q +VB3)WRW +XW6)FK8 +YG1)73H +KZQ)9FQ +R25)C13 +FFZ)DTC +H99)Y82 +N12)TRX +F5G)RLV +7VN)D7V +CRJ)GY4 +C7S)YD3 +V6S)CNH +82G)ZBV +KMM)YOU +27R)S8P +ZTK)2PT +8R4)HC5 +V9D)ZSV +L25)N12 +544)ZT7 +62H)SBL +ZMG)M4P +Y77)SB7 +G6R)2RZ +YPB)6ZG +WKT)FVM +126)ZPY +8KQ)KSF +G3Q)W3D +56F)RZX +KFC)LHG +75Y)BHL +921)95L +QRQ)SG4 +8BW)KGK +5D5)YH2 +4PK)9LQ +7J4)QQN +F8Q)SBM +14K)5NV +6NP)91L +JKM)HR1 +9G9)Q7P +P74)BCK +DBC)K1H +CH7)Z9W +GBK)YFR +LLX)YG1 +KFB)C53 +7XJ)8Q8 +54L)JMG +2PB)P2C +ZPY)V3S +NG6)WNM +R29)LN8 +1DT)LTD +XLM)X12 +3HQ)G3Q +95L)VM4 +8RN)Q28 +2GC)CVB +BHL)N5T +X9T)GBK +J27)G8G +LHG)RR3 +FS5)XSF +6HN)WC8 +WQR)G1C +X5M)SXQ +MCR)Q6W +F57)7W8 +QKG)X4T +PL8)BZM +JM3)3KS +GYP)6S2 +8V3)4TV +GSV)Y9V +JKM)5WX +VSM)3Q5 +L7Q)L1C +MFX)T1R +GQ2)22M +4L4)W3W +TRX)45N +GLG)WKT +92T)KTL +1PB)TFX +C9N)88W +Z19)PTB +95K)NGQ +8H6)CHW +DC8)7NY +R8F)HHP +TFX)S9L +P61)4JD +KDW)GMS +961)J5R +C4H)35Y +BJQ)FDN +R79)P6J +QTH)B6J +K2Y)3RY +K47)NC6 +GQR)C5W +6HN)LLX +Q7P)921 +WPV)VLF +329)YPB +3XV)RR1 +DTC)2CF +C9K)X43 +5SB)X9T +9ZL)8V3 +F5G)XMH +VD5)XG2 +97R)SC9 +NCQ)F2D +BML)2JY +N8G)DMN +6Y7)JXB +M4P)Z4J +PL1)M52 +57Z)HSB +LP8)WXJ +X49)ZHJ +YQ4)LBF +TZN)26G +3NG)PLN +XLC)TBR +8ZV)77G +3SR)QR2 +91B)J7Y +PWH)LJS +GG3)91S +2NJ)C23 +MRG)V2D +77G)NBP +DBC)3N2 +Q1Q)Z34 +BH4)B5K +V5P)8Q7 +35Y)39W +DMN)DKJ +GY4)HPQ +66L)S4M +FK8)W9R +W3W)X5M +YBW)X41 +WPG)XQN +BKC)NBD +82C)8ZV +8LR)P74 +XL9)F17 +DKJ)V6X +836)FFB +RS8)K1Q +CY5)4PC +YFR)GTQ +QF6)ZLD +35K)5YW +P6J)Z8W +Z39)NJK +J8X)T8P +15H)YXX +K5M)3B4 +FVY)L93 +DS2)QP5 +39W)WTS +NFM)LFR +4ZR)N8K +JGW)4XY +XSP)9YR +5WB)286 +292)637 +KTL)3CT +TQR)GPW +ZT7)7H2 +6YX)VCC +G2X)HLX +7QT)33M +SXQ)6VY +1WQ)ZMG +G1C)35K +D7V)PZG +73H)NG6 +TQD)6M6 +GPW)YQ4 +C67)C4H +G6F)9YS +YLZ)YBW +4XZ)KSG +11N)V9D +56W)8R4 +S8P)PVN +XG2)Z7K +LBF)6KM +ZSV)VF3 +QV6)JJN +2D9)VM8 +TYB)NTG +Q94)QNF +4JD)J8X +5WB)MVZ +X12)KV2 +79V)VP8 +8VV)B6R +T42)8BW +C13)Z9L +WFY)HC7 +3LK)RV9 +6LP)W98 +6LD)XLM +YBQ)GQ2 +VF3)MLX +DQ7)66L +C53)5F1 +5F1)YZY +3GQ)C67 +M52)VWY +M89)9L5 +HPQ)4W1 +8Z5)7FX +F8Q)1TY +4FC)VN3 +2DG)PL1 +KT2)7QT +X3G)GH2 +VFH)5ZL +3SN)ZW3 +RTP)1KS +KGK)2NJ +8Z5)F57 +91S)DC7 +SLY)QBX +BKH)M89 +637)6FC +V7K)L25 +QCF)Q3X +4L1)X58 +B2S)J5L +JJK)6PN +F4V)MHH +SC4)34G +5XC)GPJ +PTB)579 +C3D)XCK +HDY)PCH +KTM)8XY +3KS)GYP +HHS)RD2 +68B)YBQ +L1C)7C7 +TKK)NWD +YD3)JKC +VM8)38W +S9X)H3K +VN3)WPG +2RZ)56F +PG2)Z3G +SJD)SKH +JKC)XJG +KTK)V6B +Z7L)64W +6KS)GR6 +BZM)6NP +HSB)2T3 +YC5)5WB +6RL)PFB +TL2)XSP +8NL)VV7 +KZH)3BK +FN6)FG8 +NQ6)YWV +4K3)WFZ +4VT)SZH +7C7)JKB +FJJ)WP9 +FBZ)QRQ +88W)RD6 +GPH)5VZ +F17)7FJ +VWY)TWJ +BRN)95K +R55)LP8 +9K3)M4B +NWD)JSX +4NS)783 +6VH)D6T +XYQ)BHN +3RY)MFX +KGR)QGX +1XH)MNS +1TY)15L +XWV)WJC +JJN)8B3 +Y8L)Y7B +FFQ)3SG +F77)Z5Z +783)Q9R +HF2)RMK +WRW)JT4 +6MS)FBQ +44G)BRN +FDN)289 +4NJ)ZF6 +WN8)Y77 +66G)FMH +773)7HJ +M4B)Z7L +V88)52G +2HR)24V +3KH)VYY +77T)PG2 +S8N)G6F +QY2)54G +F66)9KL +FLB)SFB +HLX)32D +S4M)VXK +XPP)DQ7 +3SG)BH4 +Z5S)XW6 +92X)XLC +LQ4)3GQ +729)PRL +S3N)Z5S +29B)K47 +WBQ)TKK +BJR)GC5 +Y82)ZM3 +GK1)62H +8Q7)ZR3 +7YM)7Q9 +4R4)FQ7 +B6V)2HR +T95)LQ4 +T99)6SL +COM)ZB8 +4SC)SMZ +X87)GX6 +ZKL)M72 +7W8)WN8 +64G)15F +34G)K9J +BSK)2MM +1ZV)4FC +Z5Z)CZC +LKS)N8G +XDC)P5D +RXD)B9R +2BR)BKC +HHP)85J +QX7)FWL +WTS)WBQ +ZLY)6T5 +LP9)G65 +9ZL)GG2 +4JY)2FH +QJZ)384 +6S2)ZLY +2W1)XL9 +X4T)LKB +38W)2YD +RZX)NL6 +2BW)ZF4 +K6L)24D +TZM)SGD +2JY)K5T +MP9)GLG +8VV)TQX +MQJ)G2B +W9R)Y8L +6Y8)8NR +CNH)2X1 +5Y4)QKG +TWJ)V7S +CNJ)9K3 +5VZ)YYF +48Q)4L1 +1VL)2W1 +HSB)VC9 +HKT)45Z +CP6)XY1 +JKC)GM1 +B1H)D6Q +4B9)8XW +DLX)15H +45Z)HNQ +289)75Y +2MM)GCH +NBD)FFZ +QGX)Q3V +N1F)9G9 +P54)P9L +GC5)62Z +15L)11N +TK1)CCW +35W)8S3 +4NG)4FZ +1P9)MND +5ZL)FVY +L5P)79V +VCC)WPV +8BG)9M4 +24V)T95 +YFR)F1G +FS5)H1M +JKB)YVS +N1K)7NP +LKR)S82 +SLY)7R3 +GTQ)L2N +L2N)4DJ +CGN)7S9 +NJ7)7QH +WXB)KT2 +R3T)78Q +XSF)QCF +T85)1W2 +11N)29B +6SL)BQ2 +1Y2)C81 +B6J)5XC +GV4)LW1 +FFB)1WQ +GPP)6LP +FYL)4R4 +K9N)KZQ +ZB8)RRS +YP6)Q68 +9FQ)1PB +7G3)2L3 +KJK)NYV +WNM)9ZL +JMZ)QF6 +38S)44G +JG6)LYZ +286)WXS +B4B)Y8Y +ZML)VRJ +Z2X)FVK +TNS)8BG +8S3)QLD +NBP)DRH +TKL)429 +CC7)9DN +FYL)14D +LLX)3SZ +QQX)WF9 +LJS)GMZ +7R3)2WR +4GT)4F2 +9LQ)DBC +YPZ)4GT +9BK)SMB +QB9)P4L +3N2)ZQ9 +7N8)F7L +BLG)B2S +1SF)W53 +ZZ1)4B9 +H4Q)KJK +ZXN)4SC +82C)8D8 +15F)KGR +54G)XXH +J7Y)QJZ +SNM)SXH +BKH)8VV +SMB)KTK +ZS2)2KV +L2N)C76 +Q1T)BJQ +GQR)SK6 +QQK)TGL +LW1)FLB +3B4)J6L +V6B)57Z +Y1R)2DG +QQH)Z2Q +G8G)8KQ +8NR)K9N +6M6)3KH +J27)28R +85J)48Q +RLT)LKR +XY1)CGN +ZW3)N1K +QR2)6LD +88G)G6R +QGY)126 +5XC)X9S +X5N)7VN +8D8)97R +PYX)KMM +N8K)7B8 +MF9)PXY +8WW)4NS +JZ8)RVW +H1M)78C +QZV)3XV +YZY)66Z +WFZ)44F +3Q5)PPH +NTG)SNM +HBK)CM6 +6JF)CH7 +CVB)Y9X +F5G)TZN +95K)Y1R +614)54L +TPP)66G +4BR)8WW +YJ7)W1R +Q9R)773 +YH2)SY4 +2CF)3Q6 +GK1)NPV +6PL)TL2 +6RQ)X5N +TGK)52W +7HJ)SC4 +7B8)L8S +MKR)88G +SC2)DLX +SF9)KFC +QSZ)KBD +VL2)S9X +LV6)HK5 +FMJ)8R2 +9YR)YLZ +N23)V3F +B6R)DXF +M5V)KZH +6VY)CRW +T3Z)MQJ +JVM)WFJ +33M)9G7 +W45)VFH +YZY)1LY +HR1)QF5 +JGN)QB9 +991)F5G +78C)J27 +8XW)5SB +BHN)4SY +LKB)BSK +3DL)GQR +9XC)B6V +L4C)PD6 +LN8)82C +P2C)Z19 +SNM)C3D +4SY)8NL +8Q8)4RF +QLD)NS6 +C7M)6HN +PZG)TBV +D6T)KFB +DYJ)TLH +PQJ)729 +Z7K)QQK +ZLD)Q49 +JT4)6PL +49Y)WZ9 +X43)VNS +3SZ)H25 +ZF6)QGY +SCD)FMJ +6FC)RTP +RMS)GZC +VNS)961 +Z2Q)NJ7 +H3K)9XC +9J3)6VB +BRN)3HQ +NQY)GTK +D8W)F6F +GMS)LXG +L5Y)B1H +HC5)KTM +QVC)292 +MCN)G2X +HC7)TNW +QBX)1XH +X1H)X5D +NPV)SLY +DYN)VD5 +CCW)7CP +TG5)6Y7 +6PL)CYJ +2LW)8H9 +77T)ZXN +X5D)HJ2 +S82)2BW +729)PL8 +Y9V)8MW +PCH)LZW +XQN)3SN +WC7)ZML +V3S)JJK +T46)XG7 +XF4)TPP +SH8)2Y4 +WXT)892 +P9L)V6S +PXY)JG4 +CY5)MF9 +X41)NQ6 +B9R)9HH +M4P)91B +RD6)QQ4 +SMZ)X49 +4DJ)BKH +D6Q)F8Q +ZHJ)4ZZ +MDM)QXG +RMK)B5Z +27F)1Y2 +J87)Z39 +G65)5Y4 +NGQ)LP9 +Z34)MP9 +VLN)YPZ +MHH)K6L +F7L)JZ8 +9KL)8LZ +5XS)TK1 +MNS)Z2X +2KZ)K5M +CZC)8LR +RS8)7XJ +M72)VHV +6PN)TKL +SG4)FBR +SC9)5WZ +N8L)ZTK +XG7)MKK +KB9)JL7 +1GQ)82G +N4X)91W +F6F)NR4 +44F)1SF +SZH)CNJ +V2D)F7M +Y77)RS8 +VD3)7P7 +LXG)S5B +QXG)KDW +2KV)T46 +XXJ)1BP +ZNZ)MBB +BG4)Q94 +B5Z)CVD +5WZ)T8K +2MM)FLH +CHW)V88 +FZS)DS2 +WZ5)LDJ +BFQ)MKR +Y1R)YLV +QLD)34L +737)GPH +QQX)1ZV +CRW)T42 +73H)L9K +G2B)VJV +9G7)SH8 +Z3G)T3Z +9YS)TGK +7NY)27R +8R2)WXT +GPH)FS5 +KBD)7N8 +HM9)68B +2YD)PD5 +9YS)38S +Z8W)W8Z +3KH)X4V +6ZG)935 +36T)QX7 +9L5)SPK +VLF)4L4 +XCK)GPP +66Z)FFQ +XXH)H4Q +FWL)TQD +9DN)YYQ +F7M)4XZ +7S4)BML +L58)FCC +739)XWV +YQ4)FJJ +3CT)JM3 +KSG)NMG +6T5)JG6 +T8K)X8Y +K6L)QQH +P74)9HY +JG4)9BK +9FR)836 +TNW)6RL +RR3)HD6 +26G)SCD +HC5)B98 +72L)6G9 +6G9)1DT +32D)FBZ +1TY)C7S +QQ4)43D +RV9)5D5 +7P7)MCN +5YW)6YX +S99)6RQ +RR1)YBD +V6X)227 +SBL)6Y8 +6KM)X21 +66Y)4VT +91L)4PK +PD5)4K3 +Y8Y)L1Y +LHS)L4C +1LY)SAN +W8Z)L5Y +V6X)KS8 +7FX)J87 +YXX)B4B +CLQ)S8N +JGW)H99 +WHC)SJL +XMH)V5P +VP8)BLG +BCK)R55 +4PC)Q1T +TBV)N23 +B66)JMZ +YLV)TNS +88G)4C6 +RLT)Q76 +RRS)WXZ +43D)WQR +ZR3)HDY +S2D)QQX +DTC)BJR +Q3X)YP6 +7QH)PWH +WXJ)329 +SCK)1GQ +QKG)GSV +ZHJ)HKT +BML)CY5 +WFJ)46L +TLH)36T +VC9)QY2 +2CF)NFM +Z4B)VYK +46L)5KV +GCH)X1H +14D)3DL +PD6)QZV +34L)LHS +X8Y)9HW +QF5)KB9 +24D)WXB +GVR)D8W +PCY)PJK +1QW)L48 +J5L)LKS +ZQ9)JPX +L9K)V7K +X4V)4ZR +SB7)8H6 +VF3)HHD +2WR)QTH +PPH)W66 +C23)ZKT +HGM)XDC +NS6)8GQ +X58)991 +MLX)S3N +ZCB)14K +29Q)5SD +BH4)7D3 +FVK)NPP +Y9X)N2Q +GH2)R79 +HJ2)739 +WXS)B66 +SY4)59D +F2K)NTK +HHD)35W +935)4NJ +ZKT)C7M +V2D)C9K +HD6)2D9 +B98)SCK +ZF6)7J4 +PVN)L7Q +SBM)F77 +3H8)29Q +F2D)W41 +FLH)QV6 +YT8)S99 +GBQ)YT8 +WXZ)6MS +C5W)WFB +KV2)66Y +TBR)L5P +NL6)3SR +SK6)ZCJ +VYY)P54 +2L3)GV4 +K1X)ZS2 +7D3)Z4B +384)457 +8R2)TGF +ZB8)CC7 +KS8)TYB +RKB)2YT +K1H)XXJ +52W)S2D +WF9)P61 +WP9)GG3 +95M)8BB +W53)CP6 +CM6)R25 +GTK)TZM +Q28)D68 +WC8)VD3 +JMG)KCW +9HW)JFH +9HY)92T +8GQ)6KS +62Z)9WY +VRJ)81G +TGL)VLN +TGF)ZSL +XW6)XJS +TNL)XYQ +9G9)PQJ +VYK)4JY +GMZ)PQ1 +NJK)L58 +XF8)JVM +GQ2)GVR +N2Q)XKQ +SM4)TQR +C4S)QVC +Q76)LV6 +FMH)3D6 +7B8)C4S +VYY)2KZ +9L5)27F +7FJ)T99 +GY4)JGW +YYQ)WFY +GV4)CRJ +457)VSM +7G3)1P9 +SKH)DYN +4PK)9J3 +7S9)C22 +1KS)V6H +YVS)N4X +2YT)F4V +4ZZ)ZBG +FVM)PYX +8BB)1QW +PQ1)TCV +NR4)5SX +9WY)95M +SPK)DC8 +W3D)VB3 +L93)3LK +K9J)C9N +4C6)MRG +P5D)5XS +4XY)HF2 +MFS)64G +T33)R3T +SFB)TV7 +78Q)FYL +892)GK1 +GG2)N1F +LTD)XF4 +5WX)NQY +QNF)T33 +CYJ)6VH +NTG)MFS diff --git a/2019/day06/main.go b/2019/day06/main.go new file mode 100644 index 0000000..f5a1c5f --- /dev/null +++ b/2019/day06/main.go @@ -0,0 +1,162 @@ +package main + +import ( + "fmt" + "strings" + + helpers "git.bullercodeworks.com/brian/adventofcode/helpers" +) + +func main() { + inp := helpers.StdinToStringSlice() + allObjects = make(map[string]*Object) + for _, v := range inp { + pts := strings.Split(v, ")") + var obj1, obj2 *Object + var ok bool + if obj1, ok = allObjects[pts[0]]; !ok { + obj1 = NewObject(pts[0]) + allObjects[pts[0]] = obj1 + } + if obj2, ok = allObjects[pts[1]]; !ok { + obj2 = NewObject(pts[1]) + allObjects[pts[1]] = obj2 + obj1.addMoon(pts[1]) + } + obj2.setOrbiting(pts[0]) + } + fmt.Println(len(allObjects), "total objects") + part1() + part2() +} + +func part1() { + var ret int + for _, v := range allObjects { + ret += v.countOrbits() + } + fmt.Println("Part 1:", ret) +} + +func part2() { + if _, ok := allObjects["YOU"]; !ok { + panic("Invalid input for part 2") + } + if _, ok := allObjects["SAN"]; !ok { + panic("Invalid input for part 2") + } + you := allObjects["YOU"] + youOrbits := you.getOrbitsList() + san := allObjects["SAN"] + sanOrbits := san.getOrbitsList() + min := -1 + var minShared *Object + for _, yv := range youOrbits { + for _, sv := range sanOrbits { + if yv == sv { + ySteps := you.stepsTo(yv.Name) + sSteps := san.stepsTo(sv.Name) + if min == -1 || ySteps+sSteps < min { + min = ySteps + sSteps + minShared = yv + } + } + } + } + if minShared == nil { + panic("No shared object found!") + } + fmt.Println("Closest Ancestor: ", minShared.Name) + fmt.Println("Steps: ", min) +} + +var allObjects map[string]*Object + +type Object struct { + Name string + Moons []*Object + Orbits *Object +} + +func NewObject(nm string) *Object { + return &Object{Name: nm} +} + +func (o *Object) getOrbitsList() []*Object { + var ret []*Object + if o.Orbits == nil { + return ret + } + ret = append(ret, o.Orbits) + return append(ret, o.Orbits.getOrbitsList()...) +} + +func (o *Object) stepsTo(nm string) int { + // First check if this is it + if o.Name == nm { + // If so, remove the last transfer + return -1 + } + // Now check if it's a descendant of this + if ret := o.hasDesc(nm); ret != nil { + return ret.stepsTo(nm) + 1 + } + // Ok, we must have to go up another level + if o.Orbits == nil { + fmt.Println(o.Name) + panic("Nothing else to check!") + } + return o.Orbits.stepsTo(nm) + 1 +} + +func (o *Object) OrbitsAround(nm string) bool { + if o.Orbits == nil { + return false + } + if o.Orbits.Name == nm { + return true + } + return o.Orbits.OrbitsAround(nm) +} + +// hasDesc checks all moons to see if one is or has the requested moon +// and returns the object that does +func (o *Object) hasDesc(nm string) *Object { + for _, v := range o.Moons { + if v.Name == nm { + return v + } + if d := v.hasDesc(nm); d != nil { + return d + } + } + return nil +} + +func (o *Object) countOrbits() int { + if o.Name == "COM" { + return 0 + } + return o.Orbits.countOrbits() + 1 +} + +func (o *Object) setOrbiting(nm string) { + if v, ok := allObjects[nm]; !ok { + panic(fmt.Sprintf("Object not found (%s)", nm)) + } else { + o.Orbits = v + } +} + +func (o *Object) addMoon(nm string) { + if v, ok := allObjects[nm]; !ok { + panic(fmt.Sprintf("Object not found (%s)", nm)) + } else { + for k := range o.Moons { + if o.Moons[k].Name == nm { + return + } + } + o.Moons = append(o.Moons, v) + } +} diff --git a/2019/day06/testinput b/2019/day06/testinput new file mode 100644 index 0000000..183242d --- /dev/null +++ b/2019/day06/testinput @@ -0,0 +1,11 @@ +COM)B +B)C +C)D +D)E +E)F +B)G +G)H +D)I +E)J +J)K +K)L diff --git a/2019/day06/testinput2 b/2019/day06/testinput2 new file mode 100644 index 0000000..a1007c6 --- /dev/null +++ b/2019/day06/testinput2 @@ -0,0 +1,13 @@ +COM)B +B)C +C)D +D)E +E)F +B)G +G)H +D)I +E)J +J)K +K)L +K)YOU +I)SAN