commit 5e782cf3d7109b60fcba0eb9b710896e4158806c Author: Fedaya Date: Sun Dec 1 15:02:34 2024 +0100 Day 1 completed diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a40797e --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +# Created by venv; see https://docs.python.org/3/library/venv.html +cookies.txt +**/input +__pycache__ +.venv diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..21c63e4 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "[python]": { + "editor.formatOnSave": true, + "editor.defaultFormatter": "charliermarsh.ruff", + "editor.codeActionsOnSave": { + "source.organizeImports": "explicit" + } + }, + "ruff.nativeServer": "on", + "ruff.lineLength": 119 +} diff --git a/day1/common.py b/day1/common.py new file mode 100644 index 0000000..2d985c6 --- /dev/null +++ b/day1/common.py @@ -0,0 +1,11 @@ +def parse(filename: str) -> list[list[int]]: + elves = [] + elf = [] + with open(filename, "r") as f: + while line := f.readline(): + if line == "\n": + elves.append(elf) + elf = [] + else: + elf.append(int(line[:-1])) + return elves diff --git a/day1/part1.py b/day1/part1.py new file mode 100644 index 0000000..bcde139 --- /dev/null +++ b/day1/part1.py @@ -0,0 +1,14 @@ +from common import parse + + +def solve(elves: list[list[int]]) -> int: + return (sorted(map(sum, elves), reverse=True))[0] + + +def main(): + elves = parse("input") + print(solve(elves)) + + +if __name__ == "__main__": + main() diff --git a/day1/part2.py b/day1/part2.py new file mode 100644 index 0000000..9346ec4 --- /dev/null +++ b/day1/part2.py @@ -0,0 +1,14 @@ +from common import parse + + +def solve(elves: list[list[int]]) -> int: + return sum(list(sorted(map(sum, elves), reverse=True))[0:3]) + + +def main(): + elves = parse("input") + print(solve(elves)) + + +if __name__ == "__main__": + main() diff --git a/get_input.sh b/get_input.sh new file mode 100755 index 0000000..853f2d1 --- /dev/null +++ b/get_input.sh @@ -0,0 +1,4 @@ +#!/bin/bash +day=$1 +mkdir day${day} +curl -o day${day}/input --cookie ~/AdventOfCode/2022/cookies.txt https://adventofcode.com/2022/day/$day/input