@@ -0,0 +1,944 @@
+data = '''Disc #1 has 5 positions; at time=0, it is at position 2.%0ADisc #2 has 13 positions; at time=0, it is at position 7.%0ADisc #3 has 17 positions; at time=0, it is at position 10.%0ADisc #4 has 3 positions; at time=0, it is at position 2.%0ADisc #5 has 19 positions; at time=0, it is at position 9.%0ADisc #6 has 7 positions; at time=0, it is at position 0.'''%0Aimport re%0A%0A%0Adef load_disc_data(disc_data):%0A    entries = disc_data.split(%22%5Cn%22)%0A    num_pos = %5B%5D%0A    start = %5B%5D%0A    for e in entries:%0A        num_pos.append(int(re.search(r'(%5B%5Cd%5D+) position', e).group(1)))%0A        start.append(int(re.search(r'position (%5B%5Cd%5D+)', e).group(1)))%0A    return %5Bnum_pos, start%5D%0A%0Adiscs = load_disc_data(data)%0A%0Atime = 0%0Ashift = list(range(1, len(discs%5B0%5D)+1))%0Asolution = %5B0%5D * len(discs%5B0%5D)%0Awhile True:%0A    pos = %5B(sum(i) + time) %25 discs%5B0%5D%5Be%5D for e, i in enumerate(zip(discs%5B1%5D, shift))%5D%0A    if pos == solution:%0A        print(time)%0A        break%0A%0A    time += 1%0A

Create day_15_part_1.py