From 304f6a2c46726d53af21c309c855b720d28d334b Mon Sep 17 00:00:00 2001 From: Brechtje van Gessel Date: Thu, 4 Dec 2025 20:23:57 +0100 Subject: [PATCH] solved day 4, part 1! --- brechtje/4/4-1.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 brechtje/4/4-1.py diff --git a/brechtje/4/4-1.py b/brechtje/4/4-1.py new file mode 100644 index 0000000..b40fe17 --- /dev/null +++ b/brechtje/4/4-1.py @@ -0,0 +1,34 @@ +input = open('input.txt', 'r').read().splitlines() + +surrounding_spaces = [ + {'x': -1, 'y': -1}, + {'x': 0, 'y': -1}, + {'x': 1, 'y': -1}, + {'x': -1, 'y': 0}, + {'x': 1, 'y': 0}, + {'x': -1, 'y': 1}, + {'x': 0, 'y': 1}, + {'x': 1, 'y': 1} +] + +answer = 0 +x_max = len(input[0]) - 1 +y_max = len(input) - 1 + +for y, line in enumerate(input): + for x, char in enumerate(line): + if char == "@": + rolls = 0 + for space in surrounding_spaces: + current_x = x + space['x'] + current_y = y + space['y'] + if current_x < 0 or current_y < 0 or current_x > x_max or current_y > y_max: + continue + elif input[current_y][current_x] == "@": + rolls += 1 + if rolls > 3: + break + if rolls < 4: + answer += 1 + +print(answer)