Move into 2022 folder
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
dirstack = [] # Stack of directories we are currently at
|
||||
directories = {} # Maps paths to total filesums
|
||||
|
||||
TOTAL = 70000000
|
||||
REQUIRED = 30000000
|
||||
|
||||
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
|
||||
|
||||
FREE = TOTAL - directories["/"]
|
||||
NEEDED = REQUIRED-FREE
|
||||
|
||||
print(f"We have {FREE} space, but need {REQUIRED} so we need {NEEDED}")
|
||||
|
||||
candidates = sorted(directories, key=directories.get)
|
||||
for candidate in candidates:
|
||||
if directories[candidate] > NEEDED:
|
||||
print(directories[candidate])
|
||||
break
|
||||
Reference in New Issue
Block a user