Day 3: Lobby
Megathread guidelines
- Keep top level comments as only solutions, if you want to say something other than a solution put it in a new post. (replies to comments can be whatever)
- You can send code in code blocks by using three backticks, the code, and then three backticks or use something such as https://topaz.github.io/paste/ if you prefer sending it through a URL
FAQ
- What is this?: Here is a post with a large amount of details: https://programming.dev/post/6637268
- Where do I participate?: https://adventofcode.com/
- Is there a leaderboard for the community?: We have a programming.dev leaderboard with the info on how to join in this post: https://programming.dev/post/6631465


import numpy as np def parse_input(file_path): with file_path.open("r") as fp: banks = map(str.strip, fp.readlines()) return map(lambda x: list(map(int, list(x))), banks) def max_jolt(bank, length): if length==1: return max(bank) amax = np.argmax(bank[:-(length-1)]) return 10**(length-1)*bank[amax] + max_jolt(bank[amax+1:], length-1) def solve_problem(file_name, length): banks = parse_input(Path(cwd, file_name)) sumj = 0 for bank in banks: sumj += max_jolt(bank, length) return sumj