Browse Source

24

master
Chris Smith 6 years ago
parent
commit
636ec28825
2 changed files with 78 additions and 0 deletions
  1. 21
    0
      24.py
  2. 57
    0
      data/24.txt

+ 21
- 0
24.py View File

@@ -0,0 +1,21 @@
1
+
2
+with open('data/24.txt') as file:
3
+    connectors = [tuple(map(int, line.strip().split('/'))) for line in file.readlines()]
4
+
5
+    def search(connector, chain, available):
6
+        possible = [c for c in available if c[0] == connector or c[1] == connector]
7
+        if len(possible) == 0:
8
+            return [chain]
9
+        else:
10
+            chains = []
11
+            for p in possible:
12
+                new_chain = list(chain) + [p]
13
+                new_available = list(available)
14
+                new_available.remove(p)
15
+                chains += search(sum(p) - connector, new_chain, new_available)
16
+            return chains
17
+
18
+    chains = search(0, [], connectors)
19
+    print(f'Part one: {max(sum(sum(p) for p in chain) for chain in chains)}')
20
+    longest = max(len(chain) for chain in chains)
21
+    print(f'Part two: {max(sum(sum(p) for p in chain) for chain in chains if len(chain) == longest)}')

+ 57
- 0
data/24.txt View File

@@ -0,0 +1,57 @@
1
+42/37
2
+28/28
3
+29/25
4
+45/8
5
+35/23
6
+49/20
7
+44/4
8
+15/33
9
+14/19
10
+31/44
11
+39/14
12
+25/17
13
+34/34
14
+38/42
15
+8/42
16
+15/28
17
+0/7
18
+49/12
19
+18/36
20
+45/45
21
+28/7
22
+30/43
23
+23/41
24
+0/35
25
+18/9
26
+3/31
27
+20/31
28
+10/40
29
+0/22
30
+1/23
31
+20/47
32
+38/36
33
+15/8
34
+34/32
35
+30/30
36
+30/44
37
+19/28
38
+46/15
39
+34/50
40
+40/20
41
+27/39
42
+3/14
43
+43/45
44
+50/42
45
+1/33
46
+6/39
47
+46/44
48
+22/35
49
+15/20
50
+43/31
51
+23/23
52
+19/27
53
+47/15
54
+43/43
55
+25/36
56
+26/38
57
+1/10

Loading…
Cancel
Save