"""Peter Norvig solution. Forgot to do day 5.""" data = map(str.strip, open("input")) ID = int def seat_id(seat: str, table=str.maketrans('FLBR', '0011')) -> ID: "Treat a seat description as a binary number; convert to int." return ID(seat.translate(table), base=2) ids = [seat_id(x) for x in data] # Part 1 print(max(ids)) # Part 2 [missing] = set(range(min(ids), max(ids))) - set(ids) print(missing)