diff options
Diffstat (limited to 'users/Profpatsch/advent-of-code/2020/03/main.py')
-rw-r--r-- | users/Profpatsch/advent-of-code/2020/03/main.py | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/users/Profpatsch/advent-of-code/2020/03/main.py b/users/Profpatsch/advent-of-code/2020/03/main.py deleted file mode 100644 index 4d6baf946c3e..000000000000 --- a/users/Profpatsch/advent-of-code/2020/03/main.py +++ /dev/null @@ -1,66 +0,0 @@ -import itertools -import math - -def tree_line(init): - return { - "init-len": len(init), - "known": '', - "rest": itertools.repeat(init) - } - -def tree_line_at(pos, tree_line): - needed = (pos + 1) - len(tree_line["known"]) - # internally advance the tree line to the position requested - if needed > 0: - tree_line["known"] = tree_line["known"] \ - + ''.join( - itertools.islice( - tree_line["rest"], - 1+math.floor(needed / tree_line["init-len"]))) - # print(tree_line) - return tree_line["known"][pos] == '#' - -def tree_at(linepos, pos, trees): - return tree_line_at(pos, trees[linepos]) - -def slope_positions(trees, right, down): - line = 0 - pos = 0 - while line < len(trees): - yield (line, pos) - line = line + down - pos = pos + right - -trees = [] -with open("./input", 'r') as f: - for line in f: - line = line.rstrip() - trees.append(tree_line(line)) - -# print(list(itertools.islice(trees[0], 5))) -# print(list(map( -# lambda x: tree_at(0, x, trees), -# range(100) -# ))) -# print(list(slope_positions(trees, right=3, down=1))) - -def count_slope_positions(trees, slope): - count = 0 - for (line, pos) in slope: - if tree_at(line, pos, trees): - count = count + 1 - return count - -print( - count_slope_positions(trees, slope_positions(trees, right=1, down=1)) - * - count_slope_positions(trees, slope_positions(trees, right=3, down=1)) - * - count_slope_positions(trees, slope_positions(trees, right=5, down=1)) - * - count_slope_positions(trees, slope_positions(trees, right=7, down=1)) - * - count_slope_positions(trees, slope_positions(trees, right=1, down=2)) -) - -# I realized I could have just used a modulo instead … |