From 14baefb6423dd62ec968c518484e02778d31c748 Mon Sep 17 00:00:00 2001 From: nekineki Date: Fri, 1 Dec 2023 10:52:44 +0100 Subject: day01 oneline py --- 2023/day01_oneline.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100755 2023/day01_oneline.py diff --git a/2023/day01_oneline.py b/2023/day01_oneline.py new file mode 100755 index 0000000..dfe5b7d --- /dev/null +++ b/2023/day01_oneline.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 + +# filename = "in/day01_2.ref" +filename = "in/day01.pzl" +data = open(filename).read() +lines = data.rstrip('\n').split('\n') +# print(lines) + +res1 = sum([ 10*[int(c) for c in line if c.isdigit()][0] + + [int(c) for c in line[::-1] if c.isdigit()][0] for line in lines]) + +digits = { "zero":0, "one":1, "two":2, "three":3, "four":4, "five":5, "six":6, "seven":7, "eight":8, "nine":9, + "0":0, "1":1, "2":2, "3":3, "4":4, "5":5, "6":6, "7":7, "8":8, "9":9}; +res2 = sum([ 10*sorted([(line.find(d), digits[d]) for d in digits.keys() if line.find(d) > -1])[0][1] + + sorted([(line.rfind(d), digits[d]) for d in digits.keys() if line.rfind(d) > -1], reverse=True)[0][1] + for line in lines]) + +print('res1:', res1) +print('res2:', res2) -- cgit v1.2.3