Files
aoc-2022/7/onestar.py
T
Mark Hoekveen 262ebfc619 first 13 stars
2024-09-24 11:59:44 +02:00

29 lines
894 B
Python

dirstack = [] # Stack of directories we are currently at
directories = {} # Maps paths to total filesums
def addsize(size):
for (i, dir) in enumerate(dirstack):
path = "/".join(dirstack[:i+1])
if not path in directories:
directories[path] = 0
directories[path] += size
with open("input.txt", "r") as f:
for line in f.readlines():
line = line.strip()
if line[0] == '$' and line[2] == 'c':
folder = line.split("$ cd ")[1]
if folder == '..':
dirstack.pop()
else:
dirstack.append(folder)
else:
indicator = line.split(" ")[0]
try:
size = int(indicator)
addsize(size)
except:
pass
sum = 0
[sum := sum + directories[x] for x in directories if directories[x] <= 100000]
print(sum)