first 13 stars
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
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)
|
||||
Reference in New Issue
Block a user