diff options
Diffstat (limited to '2025/day03.py')
| -rwxr-xr-x | 2025/day03.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/2025/day03.py b/2025/day03.py new file mode 100755 index 0000000..d18ac87 --- /dev/null +++ b/2025/day03.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +from functools import reduce +from re import findall +from copy import deepcopy +import sys +# import numpy as np + +filename = sys.argv[1] if len(sys.argv) == 2 \ + else "in/" + sys.argv[0].split('/')[-1].rstrip(".py") + ".pzl" +data = open(filename).read() +lines = data.rstrip('\n').split('\n') +# print(lines) + +res1 = 0 +res2 = 0 + +def max1(arr): + for n in reversed(range(0,100)): + left = n // 10 + right = n % 10 + if left in arr[:-1]: + if right in arr[arr.index(left)+1:]: + return n + assert False + +def max2(arr, rem): + if rem == 1: + return max(arr) + rem -= 1 + + left = sorted(arr[:-rem], reverse=True)[0] + right = arr[arr.index(left)+1:] + return 10**rem*left + max2(right, rem) + +for line in lines: + nums = [int(i) for i in line] + res1 += max1(nums) + res2 += max2(nums, 12) + +print('res1:', res1) +print('res2:', res2) + |
