rj1
about | log | files | refs
commit 57b33553b32cbeab0c09af33a6f38fa55227dd12
parent d7a902850fb5507e6a2221862a2854a8acdaa63d
author: rj1 <[email protected]>
date:   Tue,  6 Dec 2022 23:59:46 -0600

day 7 solution

Diffstat:
A2022/07/solution.py | 47+++++++++++++++++++++++++++++++++++++++++++++++
MREADME.md | 2++
2 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/2022/07/solution.py b/2022/07/solution.py @@ -0,0 +1,47 @@ +import os +from collections import defaultdict + +base_dir = os.path.realpath(os.path.dirname(__file__)) +with open(base_dir + "/input.txt", "r") as file: + input = file.read().rstrip() + +lines = input.split("\n") + +dirs = defaultdict(int) +path = [] +for line in lines: + parts = line.strip().split() + if parts[1] == "cd": + if parts[2] == "..": + path.pop() + else: + path.append(parts[2]) + elif parts[1] == "ls": + continue + elif parts[0] == "dir": + continue + else: + size = int(parts[0]) + # print(size) + # add dirs + for i in range(1, len(path) + 1): + dirs["/".join(path[:i])] += size + +# for dir in dirs: +# print(dir) + +total = dirs["/"] +need = total - 40000000 + +part1 = 0 +part2 = 9999999 +# dir, size +for k, v in dirs.items(): + # print(k,v) + if v <= 100000: + part1 += v + if v >= need: + part2 = min(part2, v) + +print(part1) +print(part2) diff --git a/README.md b/README.md @@ -13,6 +13,7 @@ this repo contains my solutions for advent of code |4|00:02:17|118|0| |5|00:17:50|2168|0| |6|00:08:15|4815|0| +|7|00:19:50|735|0| ### part 2 @@ -24,6 +25,7 @@ this repo contains my solutions for advent of code |4|00:05:06|443|0| |5|12:38:15|61014|0| |6|00:08:47|3739|0| +|7|00:26:28|871|0| ## notes