From 536070e45c99fba11b09c521e15c925244be7be7 Mon Sep 17 00:00:00 2001 From: Timofey-Makhankov Date: Fri, 6 Jun 2025 00:10:28 +0200 Subject: [PATCH] Implemented Day 01 of 2015 with Python --- 2015/01/python/.python-version | 1 + 2015/01/python/main.py | 34 ++++++++++++++++++++++++++++++++++ 2015/01/python/pyproject.toml | 7 +++++++ 2015/01/python/uv.lock | 8 ++++++++ 4 files changed, 50 insertions(+) create mode 100644 2015/01/python/.python-version create mode 100644 2015/01/python/main.py create mode 100644 2015/01/python/pyproject.toml create mode 100644 2015/01/python/uv.lock diff --git a/2015/01/python/.python-version b/2015/01/python/.python-version new file mode 100644 index 0000000..24ee5b1 --- /dev/null +++ b/2015/01/python/.python-version @@ -0,0 +1 @@ +3.13 diff --git a/2015/01/python/main.py b/2015/01/python/main.py new file mode 100644 index 0000000..aba5321 --- /dev/null +++ b/2015/01/python/main.py @@ -0,0 +1,34 @@ +def main(): + input = read_file("../input.txt") + data = list(input) + print(part1(data)) + print(part2(data)) + +def part1(data: list[str]) -> int: + floor_level = 0 + for c in data: + if c == "(": + floor_level += 1 + else: + floor_level -= 1 + return floor_level + +def part2(data: list[str]) -> int: + floor_level = 0 + location_index = 0 + for i, c in enumerate(data): + if c == "(": + floor_level += 1 + else: + floor_level -= 1 + if floor_level == -1: + location_index = i + break + return location_index + 1 + +def read_file(filename: str) -> str: + with open(filename, 'r') as f: + return f.read() + +if __name__ == "__main__": + main() diff --git a/2015/01/python/pyproject.toml b/2015/01/python/pyproject.toml new file mode 100644 index 0000000..fc8175d --- /dev/null +++ b/2015/01/python/pyproject.toml @@ -0,0 +1,7 @@ +[project] +name = "python" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.13" +dependencies = [] diff --git a/2015/01/python/uv.lock b/2015/01/python/uv.lock new file mode 100644 index 0000000..67f4823 --- /dev/null +++ b/2015/01/python/uv.lock @@ -0,0 +1,8 @@ +version = 1 +revision = 2 +requires-python = ">=3.13" + +[[package]] +name = "python" +version = "0.1.0" +source = { virtual = "." }