From 390eb447ccaf1590c9dddb6c02cba8f62abaee28 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Sat, 5 Dec 2020 09:28:52 +0100 Subject: [PATCH] 2020: d05: ex1: add solution --- 2020/d05/ex1/ex1.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 2020/d05/ex1/ex1.py diff --git a/2020/d05/ex1/ex1.py b/2020/d05/ex1/ex1.py new file mode 100755 index 0000000..1d9d023 --- /dev/null +++ b/2020/d05/ex1/ex1.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python + +import sys +from typing import List + + +def seat_id(boarding_pass: str) -> int: + min_x = 0 + max_x = 128 + min_y = 0 + max_y = 8 + + for char in boarding_pass: + if char == "F": + max_x = (min_x + max_x) // 2 + elif char == "B": + min_x = (min_x + max_x) // 2 + elif char == "L": + max_y = (min_y + max_y) // 2 + elif char == "R": + min_y = (min_y + max_y) // 2 + return min_x * 8 + min_y + + +def solve(passes: List[str]) -> int: + return max(seat_id(p) for p in passes) + + +def main() -> None: + input = [line.strip() for line in sys.stdin.readlines()] + print(solve(input)) + + +if __name__ == "__main__": + main()