From dffc9de7d5dac09b763b8fce3aca2d4d14086903 Mon Sep 17 00:00:00 2001 From: Kees van Kempen Date: Thu, 19 Dec 2024 00:17:19 +0100 Subject: [PATCH] 2024(4): clean up a little, add notes --- 2024/4/puzzle1.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/2024/4/puzzle1.py b/2024/4/puzzle1.py index 384a0a4..434b5ae 100644 --- a/2024/4/puzzle1.py +++ b/2024/4/puzzle1.py @@ -7,19 +7,17 @@ def scan_line(line): return line.count(to_find) def transpose(list_2d): - #return list(zip(*list_2d)) - #return list(map(list, zip(*list_2d))) - #return list(map(list, itertools.zip_longest(*list_2d, fillvalue=None))) outlist = [] - for j in range(len(list_2d[0])): + for j in range(max(map(len, list_2d))): outlist.append([]) for i in range(len(list_2d)): - outlist[j].append(list_2d[i][j]) + # TODO: This is a weird edge case. + if j < len(list_2d[i]): + outlist[j].append(list_2d[i][j]) outlist[j] = "".join(outlist[j]) return outlist def rotate(list_2d): - #print(list_2d) x_max, y_max = len(list_2d), len(list_2d[0]) diagonal_list = [] @@ -68,8 +66,8 @@ if __name__ == "__main__": for line in full_string: result += scan_line(line) result += scan_line(line[::-1]) - print(result) - for line in rotate(transpose(full_string)): + # TODO: Transposion after rotating is ill-defined. + for line in transpose(rotate(full_string)): result += scan_line(line) result += scan_line(line[::-1])