This commit is contained in:
2025-12-03 19:58:49 -05:00
parent 4a19fcc938
commit 63fa614745
2 changed files with 254 additions and 0 deletions

54
2025/03/solution.py Executable file
View File

@@ -0,0 +1,54 @@
#!/usr/bin/env python3
import sys
import pathlib
def read_input():
path = pathlib.Path(sys.argv[1]) if len(sys.argv) > 1 else pathlib.Path("input.txt")
return path.read_text().rstrip("\n")
def parse(data):
return data.splitlines()
def part1(data):
sum = 0
for bank in data:
bat = list(bank)
large = sorted(bat[:-1])[-1]
large_loc = bat.index(large)
second = 0
for val in bat[large_loc+1:]:
if int(val) >= int(second):
second = val
sum += int( str(abs(int(large))) + str(abs(int(second))) )
return sum
def part2(data):
s = 0
for bank in data:
digits = [int(x) for x in bank]
need = 12
remove = len(digits) - need
stack = []
for d in digits:
while stack and remove > 0 and stack[-1] < d:
stack.pop()
remove -= 1
stack.append(d)
res = stack[:need]
s += int(''.join(str(x) for x in res))
return s
def main():
raw = read_input()
data = parse(raw)
r1 = part1(data)
r2 = part2(data)
print(r1)
print(r2)
if __name__ == "__main__":
main()