Это день 13 и снова я забыл о вызове, но, наконец, я сделал это. Первая часть была легкой, но для второй части я взял помощь от Reddit комментарий здесь. Я загрузил все мои 2020 решения на Этот репозиторий Отказ
Пожалуйста, поделитесь своим решением тоже.
Часть 1.
with open("day13.txt", "r") as fp: lines = fp.readlines() timestamp = int(lines[0][:-1]) bus_ids = [int(x) for x in lines[1].split(",") if x.isdigit()] import numpy as np timestamps = range(timestamp-50, timestamp+50) valid = np.inf diff = np.inf bus_id = np.inf for time in timestamps: for bus in bus_ids: if time%bus==0: d = abs(time-timestamp) if time>timestamp and d < diff: valid = time diff = d bus_id = bus bus_id*(valid-timestamp)
Вторая часть
LINES=lines start = int(LINES[0]) busses = ["x" if x == "x" else int(x) for x in LINES[1].split(",")] def part2(): mods = {bus: -i % bus for i, bus in enumerate(busses) if bus != "x"} print(mods) vals = list(reversed(sorted(mods))) val = mods[vals[0]] r = vals[0] for b in vals[1:]: while val % b != mods[b]: val += r r *= b return val part2()
Оригинал: “https://dev.to/qviper/advent-of-code-2020-python-solution-day-13-24k4”