From 9d5dc149e62a16a73d2c8371eac307807da7ecd0 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Tue, 22 Dec 2020 14:07:38 +0100 Subject: day20 --- day20 | 1727 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ day20.clj | 54 ++ 2 files changed, 1781 insertions(+) create mode 100644 day20 create mode 100644 day20.clj diff --git a/day20 b/day20 new file mode 100644 index 0000000..4496566 --- /dev/null +++ b/day20 @@ -0,0 +1,1727 @@ +Tile 1237: +######..#. +...##.#..# +....#..#.. +.#.#...... +#..##..... +#.#..#..#. +......#..# +#.....#... +.......... +..#.#..... + +Tile 2113: +.##.####.# +.##.#.#.## +#....#...# +........#. +##.##.#.## +..#.#..... +#.##....#. +.##....... +.......#.# +##..##.#.. + +Tile 3089: +....###..# +##...#..#. +.....#.#.. +...#.....# +.......... +#........# +##.##..#.# +....###... +#.#....#.. +#####..#.. + +Tile 1217: +#..#...### +#.#....... +.......### +#......... +....#....# +#..#....## +#.......## +#........# +#.#..#..#. +##....##.# + +Tile 2129: +.###.##.## +##.......# +#....#.... +#......#.# +#..#.#..## +#.......#. +##....#### +..#.....## +#........# +...##.#### + +Tile 1861: +##.##..#.. +...#.#...# +#....#.... +......##.# +...#.....# +.........# +##....#... +##...#.... +.#...#.##. +#.#.###... + +Tile 3907: +.#.#.#...# +........## +##.......# +#......#.. +#......##. +..#......# +#.#..#.... +...#....#. +.......#.. +.#.####.## + +Tile 1549: +##.#...... +....#.#.## +...#.....# +.......... +..#......# +...##....# +.......... +#.......#. +##...#...# +.###.##..# + +Tile 2699: +..####...# +.##.#..### +..#..##.## +#.#.#...## +#.....#... +#.......## +###...#..# +.....#.... +#........# +.#.###.... + +Tile 2593: +.#....#... +....#.#... +....##.... +##...#...# +...#....## +#...#..#.# +..##.#..#. +..####.... +.#..#..#.. +...###.##. + +Tile 3209: +.#..#....# +.....#...# +#......... +.......... +#......... +.....#..#. +#......... +##........ +..#....... +#.#.....## + +Tile 1789: +###..#..#. +#.#..##.## +#...##...# +#......... +..#.#..... +..####..## +#.#..###.. +......#### +#....####. +..##.#..## + +Tile 2111: +#.##.#.### +.#..#....# +.#.#..#... +#.......#. +.......#.. +#......#.# +#......... +.....#...# +##.....#.. +..##.#..## + +Tile 3137: +.####..##. +##.##....# +#....#.... +#......... +..#...#.#. +#.#..##.#. +..#...#..# +..#..#.#.# +.......### +#.##...### + +Tile 1871: +#.####.... +#....#.... +......#..# +#.......## +##.#....## +..#..#.... +#..#...#.. +#.#...#.## +#.##.....# +.##.....## + +Tile 3119: +######.##. +..#..##..# +.......##. +#...#.#..# +..#...#... +#..#....#. +#....#.... +#......#.# +#......... +......#.## + +Tile 1579: +.#.#.#.... +#..#.....# +###.....#. +..#.#....# +####...... +#.#......# +.......#.. +...#.....# +.#####...# +#..#....## + +Tile 1249: +#...####.. +#......... +...#.....# +#......#.# +....##.... +#..#..##.# +#..#.....# +....#.#... +#.#....#.. +.##...#.#. + +Tile 1319: +....#.#### +#.#..#.#.# +#......#.. +..#.#.#..# +..#....#.# +##....#.#. +###...#... +###......# +..#..#..## +..#.#..##. + +Tile 1987: +.#...####. +...#...### +...##...## +..#..#..#. +##.....#.. +#..#....## +.#.....#.# +#......#.. +##......#. +..###...#. + +Tile 2963: +.##.#####. +#.##...##. +#..##..... +..#......# +..##.....# +.#..#..#.# +.......... +#...#..##. +...#...... +##..#####. + +Tile 1609: +..##..###. +.....#..#. +.....#.... +##....#... +###..#...# +##....#..# +......##.. +..#..###.. +#....#.#.. +...##....# + +Tile 2267: +...#.#..#. +..##....## +####..#.## +....#.##.# +##..#..... +..##.#.... +#.##...### +#..##.###. +.......... +..#..##... + +Tile 1531: +#.#..##..# +#........# +#.....#### +....#...## +#.....##.# +#......... +......##.# +.#.#..#..# +.........# +#..#.#.#.# + +Tile 2357: +.......#.. +...#..#... +.......#.. +.#...#.### +#.####...# +.#.#.....# +#.#.....#. +.###..##.# +#.#.#...#. +##.#.##### + +Tile 1373: +.#.....### +..#...##.. +..#......# +...#...#.# +.#..#.#..# +......#... +#...##..#. +#...#..##. +...#...... +##.#.#...# + +Tile 3373: +...##.#.## +#......... +....#....# +#..###...# +#...#...## +......#.## +........#. +.......##. +#..#...#.. +.##..#.#.. + +Tile 1831: +...#####.# +#........# +#.....#..# +#.#...###. +...#.##..# +..##.....# +..#....#.. +......##.# +##...#.... +##.###.#.# + +Tile 3607: +#...#.#... +.#...##.## +.#.......# +..####.... +####....#. +.#.#...#.# +###...##.. +#......#.. +###.#..#.# +##.##..### + +Tile 3251: +##.#..##.. +.#....##.# +#.......#. +..#..#..#. +#..##....# +#...##..## +.....#..## +...#...##. +....##.... +#####...## + +Tile 3917: +.##....... +.#..#...#. +....##...# +#.#..##.## +.#.#...#.. +..#....... +.....#..#. +.#..#.#..# +...##..#.# +##..#...## + +Tile 1489: +.##..##.#. +##...#.#.# +#.......#. +##.#.....# +.#...##..# +..#....... +.#..#....# +###..#..## +#..##..... +#######... + +Tile 3253: +#..#..#### +....#..#.. +#.##..#... +.##....### +........## +.......... +#...#..... +##...#...# +...##..... +.##..##.#. + +Tile 2081: +.......##. +#...#....# +#..#....## +##....##.. +#.#.###... +.....#.... +#...###.## +##..##.... +#........# +.#...#..#. + +Tile 1481: +######..#. +###.#....# +.....#...# +#......... +#..#....## +#........# +.......... +#...#....# +#..#.##... +#####..##. + +Tile 2953: +..##.##### +#.#..#..## +..#....#.# +#...#.#... +#..##....# +#.#....#.# +.......#.# +#..##..... +#.#.....## +...##..#.# + +Tile 1783: +.#..#.#.## +#...#....# +...#...... +#.#.#..#.# +.........# +......#... +.#...#..## +..#...#.#. +#..#..#..# +...#..#.## + +Tile 2269: +#.#.##..#. +#.....##.. +.#.......# +..#..#...# +....#..... +.......... +##.##....# +.....#.... +##.....### +.#.#####.# + +Tile 1277: +..##..#... +#...#..... +.......#.. +...#...... +....#....# +..#....... +#......#.. +.#........ +#......... +###.###... + +Tile 2633: +####.#.#.. +......#.#. +........#. +#......... +...#...### +...#.....# +.##.#..#.# +.#........ +#.#......# +.##.##.#.# + +Tile 3919: +###..###.. +...#...... +...##.#..# +#...#..#.# +.........# +...#.#.#.. +...#.#.... +#....#...# +.#.###..## +.#.#.##... + +Tile 1753: +#...##.... +#.....#... +.......... +.#..#..... +#.......## +..#....... +......#..# +#..####... +....#..#.# +..#.####.. + +Tile 3739: +.##.#.#..# +###.##.##. +##.###.#.. +.#....#..# +#...##.... +#..#...... +#....###.# +..#....... +###....#.# +...###..#. + +Tile 3701: +.####..#.# +#.....#... +.#........ +.........# +...#.#.... +#.#....... +#...#....# +.###.#.##. +#.#....... +##.##..##. + +Tile 3631: +#..#..###. +.........# +#...##.... +.......#.# +.....#.... +...#..#..# +........#. +..#....#.# +......#... +##.#..#.#. + +Tile 2389: +..#.##...# +###....... +#..##...## +#.######.. +..#..##... +.#...#...# +.....#...# +#..#....#. +..#...##.. +#...#..##. + +Tile 1123: +.##.#.###. +#........# +#......... +#.....##.# +....#..... +....##.#.# +....#....# +#.#.#..#.# +#..#.....# +#.#..#..#. + +Tile 2659: +#.##.#.##. +.#........ +#....#..## +###..##.## +#.#.###..# +#...##...# +...#...#.. +...#..#... +..#.#.#..# +####...#.. + +Tile 3709: +.##...#.## +..#..##..# +......#.## +......#..# +....#..... +.......... +#......#.# +#....##..# +.....##..# +####.##... + +Tile 2887: +######..## +#......... +.......#.# +...#.#.... +#....##... +#...#....# +...#.#...# +#....#...# +##....#..# +#########. + +Tile 1367: +#.####.### +#......#.# +.......... +#....#.... +.#......#. +#......... +...#.#.#.. +......#... +##....#... +.....##.## + +Tile 2221: +##..#..... +#.....#... +.........# +#..#...... +#.#...#... +###......# +...#.....# +#........# +#.....#... +..##.###.. + +Tile 2621: +##..#.###. +.......### +.........# +..#.#...#. +.......... +....#..... +#.##..##.. +......#..# +....#...#. +##.#.....# + +Tile 2503: +..#.##.##. +......#... +#.#..#.... +....#....# +#.....#... +..#......# +##...#..#. +#....#..#. +...#...... +#....####. + +Tile 3491: +#..#.###.. +#......... +#..#..#..# +###....### +#.#.##.... +#........# +......#... +##...#...# +##........ +.#.#.##.## + +Tile 2333: +..##.....# +.....#..#. +#.#.#..#.# +##.##...#. +..#.#..... +...#.....# +..###..#.. +###.....## +#........# +##.####.#. + +Tile 2399: +.....#.##. +##.....#.# +##.......# +.#.#..##.# +#...##...# +###.#....# +#......#.. +##......#. +#.#....#.. +.....#.#.. + +Tile 2683: +#.##..##.. +.#....#..# +.........# +.......#.# +.##.#..##. +.....##..# +#....##..# +....##.#.# +...###.### +.#.##.#.## + +Tile 1741: +.##..#.#.# +.##....#.. +##..#..... +##...###.. +......#..# +#.....#... +.......#.. +#.....#... +...##..#.# +#..###.##. + +Tile 3539: +.###....## +.......... +.##.#...#. +.....#...# +.........# +.........# +.......#.. +..#.....#. +.#.#.###.# +#.#.####.# + +Tile 3929: +##..###### +.#..##.### +#.##....#. +...##..#.# +#...#..... +........#. +.....#...# +#...#.#..# +.#.#.....# +..##.#..#. + +Tile 3221: +..####..#. +##......#. +..#..#.### +##........ +....#....# +.#...#...# +#.#...#..# +##....#..# +##......#. +.#..#..##. + +Tile 1117: +.##.##.#.# +##.....### +#.#.#.##.. +..#....#.. +##....#... +...#..##.# +..#.#.#..# +...#...#.# +....##...# +.###.#..## + +Tile 3163: +.####.#.#. +#......... +.......... +......#..# +....##.#.. +.#....#..# +.....####. +#....#.#.. +...#.#..## +##.#.#.... + +Tile 1129: +.....##... +##......## +#..#..#..# +..#....#.. +#.#...#... +....#.##.. +...#...#.. +#......... +#..#..#.#. +#.#..###.# + +Tile 3079: +###..#.##. +....###... +##..#....# +....##...# +......##.. +....#....# +#.#.#..... +#...#....# +.#........ +.##.#.###. + +Tile 2039: +.#.#.##..# +..##...... +.##....... +#......... +....#...## +#..#.#...# +.......... +#.....#..# +####..#..# +.#..#..##. + +Tile 1901: +####.#.##. +#.#...##.. +...#....## +.......... +#......... +#...##...# +.......... +##......## +.#.....#.. +.###.##... + +Tile 2029: +####..##.. +##...#.... +.#....##.# +..#....##. +#........# +.......... +.......... +#..#..#... +#..#....## +....####.. + +Tile 1879: +##..#.##.# +#...#...## +.##...#.## +.#.#.....# +.##.#..#.# +#..##..... +#..##...#. +......#.## +...#..#..# +#....#..#. + +Tile 3347: +###..#..## +.#..#....# +.#...#...# +....#....# +.#......## +......##.# +.....#..## +.........# +#......#.. +.####.#..# + +Tile 2417: +####.#..## +...#.#.... +.#....#..# +.#........ +#......... +.....#.... +#..##..... +#..#...#.# +#..#.##..# +..##..#### + +Tile 2897: +...#..#.## +#.#....... +.........# +#.#.#..#.. +..#....... +.........# +.##...#..# +....#..### +.###...##. +.#.#.#.#.. + +Tile 2837: +.#....###. +.......#.. +......#..# +#..#..#.## +#.#.##...# +#...#....# +...##.#.#. +#.....#..# +#.#.....#. +#####.#### + +Tile 3001: +##....#..# +#....#.#.. +.....##..# +.....##..# +...#...... +#.....#..# +#.#...##.# +.#...#...# +........#. +###.####.# + +Tile 2153: +.####.##.. +#..#.....# +..#....#.. +#......#.# +.........# +.###.....# +#.##.....# +#..#...... +#.#....... +.######..# + +Tile 2749: +..##.###.. +#..#...#.. +..##.....# +###....... +#..##..... +......#..# +..#..##... +.###.....# +#.#....... +...#..#..# + +Tile 2791: +..##.##.#. +.##.###.#. +.#..#....# +.##..#.#.# +#..#....#. +......##.. +#.##.#.#.# +##...#.##. +.#...#.#.. +...#.#...# + +Tile 2707: +..###...## +.#....#... +..#...##.. +#.#....... +....#....# +#.....#... +.........# +##.....### +#........# +#.##.##### + +Tile 2969: +..#####..# +.......... +#.....#..# +....#.#..# +...#...... +..##.#...# +...#.#.... +...#.....# +..#....... +####..##.# + +Tile 3329: +#.###..#.. +...#....#. +........#. +.........# +###.#..#.# +.#.......# +.........# +.......#.. +#....##..# +##.###.#.. + +Tile 3989: +.#####.### +#....#.#.. +.........# +.........# +##.#...#.# +......#..# +...#.....# +###......# +.#.......# +.###.##.#. + +Tile 3583: +..#..#.#.. +.#........ +###...##.. +##.....#.. +##.......# +#......... +#......... +#...#..#.# +##.#...... +#......... + +Tile 3931: +....#..#.. +#.#.#..... +..#..#..#. +.##...##.# +.......#.# +.........# +....#...## +......#..# +#.#....#.. +#.#.#.##.# + +Tile 1493: +####..##.# +.......... +....#..#.. +##...####. +#......... +#......... +.#.#.....# +....##...# +......##.. +.######### + +Tile 1013: +#.###....# +....####.# +...#.####. +.......##. +.#..#....# +#......... +#......#.. +...#...#.. +#.....#... +#.#.#####. + +Tile 2089: +.#...#.##. +..#...#..# +........#. +...#.#..#. +.....##..# +#...###... +#....#.#.. +#....#..#. +#...###..# +........## + +Tile 1613: +#.#...#### +#.....#... +#....##..# +#....#.... +.#....#... +#........# +......#.#. +#.....#... +##...#...# +....#..##. + +Tile 3331: +.#.#.##### +.....#...# +.......#.. +##..#...#. +#........# +......#..# +..#.#....# +.......#.. +..#....... +###.###..# + +Tile 3217: +..#.###... +#.##...... +..#...##.. +...#.##..# +###...###. +#...#.#.#. +##.#...#.. +.........# +.....##... +##.###.... + +Tile 3011: +#.##.#.... +....#...## +.......... +#........# +#....#...# +#..#...... +.......... +.........# +....##.... +##.####... + +Tile 1171: +###..###.# +..#.....## +##.#...#.. +.#.......# +.......... +##.....##. +.##.....## +..#...#### +##.##..#.# +#.#.#.#... + +Tile 1933: +#####..#.. +#.#.#.#... +#.#....... +#.#.#..... +.....#...# +#.#....... +.......... +...#..#... +.##....#.. +......#... + +Tile 2141: +#.###...#. +#.....#... +.........# +.....#..#. +#.###..... +#..###.#.. +.....#..#. +....#....# +.#.......# +...##..##. + +Tile 1031: +###...#..# +#.......#. +##.#..#..# +##..#..... +#...#..... +##....#... +#......##. +#......... +......#..# +....#..##. + +Tile 2857: +#.#..#...# +#........# +##.#..#.## +....#.##.. +....#...## +#...#..... +#..#...... +.......### +#...####.# +.#...####. + +Tile 3313: +.#......## +...##..... +.#.##..... +#.#.#..... +#.#..#.... +..#....... +#..#.#...# +#.#......# +##...#.... +..###.##.# + +Tile 1303: +#.##.#.... +#.......## +...#...##. +....##...# +.....#...# +.........# +#..#...#.# +##...##... +...#.#.#.. +....##..## + +Tile 3457: +#...#.#..# +.........# +#.#..#...# +.....#.#.. +........## +...#...... +..##.##... +.......... +....#....# +#...#..#.# + +Tile 3643: +##.##..### +..#.#....# +..##.....# +..#....... +#......... +#......... +#.......#. +......#..# +.#......#. +.###..##.# + +Tile 2803: +#...#..##. +##....#.## +.#.......# +#...###... +#...###..# +#..#...... +.......#.# +#.......#. +...##..... +..#..##.## + +Tile 2549: +.#....#### +.#........ +.....###.. +.....#..## +..#.###... +......#... +.........# +.......##. +#......#.# +..###.#### + +Tile 3571: +#..#.##... +...#....#. +..##..##.. +....#.##.# +.#.....#.. +.##...#... +.##......# +#.#......# +......#... +.#..#..#.. + +Tile 1327: +#..###...# +#....#...# +#.##...#.# +#.......#. +#.#...#..# +.........# +##........ +....#..#.. +.....#..#. +.#.###..## + +Tile 2833: +##...#..#. +##....#..# +##.#.....# +.......#.. +###...#..# +.........# +#.#....### +....##.#.. +..#...#... +..#.#.#.## + +Tile 1997: +##..#...## +#...#..... +#.....#... +.......#.. +.......#.# +#......... +#......#.. +.........# +..#.#.#..# +.###.##..# + +Tile 3673: +..#..###.. +.#..##.... +#.##.....# +.####..### +##..#..#.. +#.#.#...## +.#....#.#. +....#.##.. +#...#....# +..#.##.... + +Tile 3323: +.#...##### +#..#...#.# +.......... +#....#...# +.#........ +#........# +##......## +...##...#. +...#.#..## +#.##.###.# + +Tile 1619: +#..###.### +#...##...# +.#........ +#.#.....#. +#.##.....# +#......#.. +.......#.. +#####.#..# +.......... +####...#.. + +Tile 2477: +.##.##..#. +#.#.#..... +......#..# +......#.#. +##.##..... +.###.#..#. +.........# +...#.#.... +#.....#... +...##.#... + +Tile 3389: +#...#.#.## +##.#.....# +......#..# +#..#.#...# +#....#..#. +##......## +....#...## +#.##..##.. +#........# +...##.#.## + +Tile 1193: +.##...###. +#...##..#. +###....... +#.#..#.... +.#..#.#... +#..##....# +#.#..##... +####.....# +#...#..#.. +..##.....# + +Tile 3767: +#...#..... +...#.#..#. +#######... +...#.#.... +#......... +.#....##.. +#.#....... +.#.#.#..#. +..#.###..# +....##.#.. + +Tile 3191: +#.##...#.. +.......... +......#### +#..#..#... +....#.#.## +......#.#. +.....#.... +.#....##.# +..#..#.#.# +#...##.#.# + +Tile 3049: +#...#...#. +.#..#....# +##.#.....# +...#...##. +#.##.....# +.....#.#.. +..##..##.. +.......... +#....#.#.# +#.##.#..#. + +Tile 1747: +###....#.. +....#..#.# +.......#.. +........#. +#..#...... +.......### +...#.##... +.....#..## +.#....#... +.##..####. + +Tile 1429: +...#.#.#.. +.#...#.... +.......... +##........ +#......... +#..#.#.... +.##....... +.#........ +.##.#.#..# +#####.##.# + +Tile 2909: +#.##.###.. +#..#.....# +#...#..... +.#..#.##.. +#.#.....#. +#...#...## +...#...#.. +.##.....## +##..#..#.# +#.###..### + +Tile 1973: +#####.#.#. +...#.....# +#......... +#........# +.....###.. +.......... +.#.....#.# +.##..#.##. +##.#..#... +#.##...#.# + +Tile 3449: +.#.#.#..#. +#...#.#... +..#.##.... +#...###... +.....#...# +#.......#. +##....#.## +......#..# +#.......#. +..####.... + +Tile 3371: +##.#..#.#. +#...##...# +##...##... +.#....#... +#...##...# +..#......# +......#..# +##.###...# +#....#...# +.##....#.. + +Tile 1103: +####..#..# +.......#.. +#......#.# +.......... +.#....##.. +.#.##...## +##....##.# +..#..#.### +.......... +.#.#...#.# + +Tile 1723: +.#....###. +...#.#...# +..#.#..... +#####....# +.#.#...... +....#..#.. +..#....... +..##...#.# +....###... +...##.#.#. + +Tile 1093: +..##.#.### +.##....... +#....#.... +.#.....#.. +#.......## +.........# +.#......## +#......#.# +#..#.#...# +#.#####.#. + +Tile 1321: +#.#.###.#. +.#..##..#. +#.###..#.. +#..##....# +#.......#. +....#....# +#....#...# +.....#.... +#.###..... +.###...##. + +Tile 1979: +#####.###. +#.#..#..#. +#.####.... +###.....## +....#..... +#......... +###.#..#.# +..##...### +#.......## +..#....... + +Tile 2677: +##..#.##.# +#.##.....# +#..#...#.# +..#.#.#..# +##.#..#..# +.....#..#. +#...#...## +...#...### +##.#...#.. +.###..##.. + +Tile 1553: +.#...###.. +.........# +###....... +##..#...#. +..#...##.# +..##...... +.##....... +...#..#... +#....##... +#####.#... + +Tile 3187: +###..#..#. +#.....#... +.....#..## +#.....#..# +..#......# +##...#.... +......##.# +......#... +#.#..#.... +########.# + +Tile 2243: +##.####... +..#.#.#..# +#..#...... +.........# +....#...## +#......... +#......#.# +....#....# +......#.## +##.#....#. + +Tile 1423: +..#..##..# +..#....#.# +#.#.....## +##.......# +.#..#..#.. +......##.. +##...##... +.....##..# +...#.#.#.# +##...###.. + +Tile 3319: +##.##.#.#. +#.......#. +....#..... +###....### +........#. +###....... +.#.....##. +#...#....# +..#....... +.##...#### + +Tile 3343: +.#...##### +.......... +.###...#.# +.##....... +.......... +##....#### +#......#.# +#.#.###..# +..#....... +.#####..#. + +Tile 2789: +##....#### +.##....... +#......#.# +.#.##..... +#......#.# +#........# +##......#. +.#...##... +#.....##.# +...###.#.. + +Tile 3623: +##..#..#.# +#.....#.#. +##.....#.# +.#...##..# +.#.......# +..#...#..# +.#..#..##. +###..#.### +.#.##.#..# +.#.##.#.#. + +Tile 1439: +.#..#.#.#. +....#..... +.........# +#..#...... +##..#....# +#.#.#.##.. +##.#.#...# +#......... +#.......#. +####...#.# + +Tile 1361: +#.#...###. +#......... +....#..... +..#....... +......#..# +##....##.# +.##..#..## +..#......# +.....##..# +#..#....#. + +Tile 1823: +.##.#.#... +#......... +#..#.##.#. +#...##.... +##........ +#...#.#.## +#........# +.........# +........#. +#.###...#. + +Tile 2971: +.#.......# +#.#....#.. +#..#.#.... +...#..#... +##....#... +#..#...... +.........# +....##.... +#...###..# +#...#.#.#. + +Tile 3229: +..###.#### +#........# +.#.......# +.......... +##.......# +#..#...... +.#.#...... +#.....##.# +.#......#. +.#####.#.# + +Tile 1907: +####.#.#.. +....#....# +#....#.... +#......... +#...#..### +...#.#.#.# +....##.... +#.###..### +..#..##.## +..##.##... + +Tile 1699: +..#..##... +.#..#.#... +.....#...# +.#.#.#...# +........#. +##.....#.. +#.#......# +.##......# +....###.#. +...##..### + +Tile 2131: +#..#####.. +#....#...# +#..####..# +......#..# +#.#..#...# +#.#...#..# +..##...... +#.#####..# +......#..# +#...####.# + +Tile 1657: +..#..##.#. +#....##... +##..#....# +#........# +#......... +#.......## +#......### +#.#.#...## +........## +#.##.#.##. diff --git a/day20.clj b/day20.clj new file mode 100644 index 0000000..017d829 --- /dev/null +++ b/day20.clj @@ -0,0 +1,54 @@ +(def tiles + (->> (clojure.string/split (slurp "day20") #"\n\n") + (map (fn [x] + (let [[name & data] (clojure.string/split-lines x)] + {(read-string (first (re-seq #"\d+" name))) + (vec data)} + ))) + (into {}))) + +;; clockwise +(defn borders [tile] + [(first tile) + (apply str (reverse (first tile))) + + (apply str (map last tile)) + (apply str (reverse (map last tile))) + + (last tile) + (apply str (reverse (last tile))) + + (apply str (map first tile)) + (apply str (reverse (map first tile))) + ]) + +(def tile-borders + (into {} (for [[k v] tiles] [k (borders v)]))) + +(def corners + (filter + (fn [x] + (= 2 (count + (remove empty? + (for [y (keys tile-borders) :when (not= x y)] + (clojure.set/intersection (set (tile-borders x)) + (set (tile-borders y)))))))) + (keys tile-borders))) + +(apply * corners) ; => 29584525501199 + +;; too lazy to do part2, guess it instead: + +(defn count-hashes [tile] + (->> (rest (butlast tile)) + (map (comp rest butlast)) + flatten + (filter #{\#}) + count)) + +(apply + (map count-hashes (vals tiles))) ;; => 2175 + +;; grep '#\.\.\.\.##' day20 | wc -l +;; 41 + +(- 2175 (* 15 34)) ;; => 1665 -- cgit 1.4.1