"""Solution for 2020/24""" from collections import defaultdict instructions = [] with open('input', 'r') as f: for line in f.readlines(): line = line.strip() i = 0 instruction = [] while i < len(line): if line[i] in ['w', 'e']: instruction.append(line[i]) else: instruction.append(line[i:i+2]) i += 1 i += 1 instructions.append(instruction) print(instructions) MOVEMENTS = { 'e': (1, 0), 'w': (-1, 0), 'ne': (0, 1), 'sw': (0, -1), 'nw': (-1, 1), 'se': (1, -1), } def parse_instruction(instruction): coord = (0, 0) for move in instruction: dx, dy = MOVEMENTS[move] coord = (coord[0] + dx, coord[1] + dy) return coord def main(): flipped_tiles = defaultdict(int) for instruction in instructions: coord = parse_instruction(instruction) flipped_tiles[coord] += 1 print(''.join(instruction), coord) blacks = [x[0] for x in flipped_tiles.items() if x[1] % 2 == 1] print('flipped', blacks) print(len(blacks)) main()