chore: create new project structure and aoc.py runner script

This commit is contained in:
2025-08-04 16:23:06 +02:00
parent f76375d835
commit e2964c6c36
91 changed files with 177 additions and 113 deletions

View File

@@ -0,0 +1,28 @@
from collections import defaultdict, Counter
def calculate_fishes(inp, days):
fishes = Counter(inp)
for day in range(days):
fishes_new = defaultdict(int)
for fish, cnt in fishes.items():
if fish == 0:
fishes_new[8] += cnt
fishes_new[6] += cnt
else:
fishes_new[fish - 1] += cnt
fishes = fishes_new
return sum(fishes.values())
def main(infile):
with open(infile) as f:
inp = [int(x) for x in f.readline().split(",")]
res = calculate_fishes(inp, 80)
print(f"Part 1, {res}")
res = calculate_fishes(inp, 256)
print(f"Part 2, {res}")
if __name__ == "__main__":
import sys
infile = sys.argv[1] if len(sys.argv) > 1 else "example.txt"
main(infile)

View File

@@ -0,0 +1,34 @@
total = 0
numbers = [0, 0, 0, 0, 0, 0, 0, 0, 0]
with open("input.txt") as f:
data = [int(x) for x in f.readline().split(',')]
for i in data:
if i == 0:
numbers[0] += 1
if i == 1:
numbers[1] += 1
if i == 2:
numbers[2] += 1
if i == 3:
numbers[3] += 1
if i == 4:
numbers[4] += 1
if i == 5:
numbers[5] += 1
if i == 6:
numbers[6] += 1
if i == 7:
numbers[7] += 1
if i == 8:
numbers[8] += 1
def rotate(l):
return l[1:] + l[:1]
for j in range(256):
numbers = rotate(numbers)
numbers[6] += numbers[8]
print(f'DAY {j+1} AMOUNT OF FISH: {sum(numbers)}')