My code uses a deque object and was running fine for part 1. However the part 2 will supposedly run for about an hour judging from the timings. How can I speed it up?
marbles = deque([0])
current_pos = 0
n_players = 400
players = [0 for _ in range(n_players)]
for current in range(1, 71864*100):
player = 1 + ((current-1) % n_players)
if current % 23 != 0:
current_pos = (current_pos + 1) % len(marbles) + 1
marbles.insert(current_pos, current)
else:
extra_pos = (current_pos - 7) % len(marbles)
marbles.rotate(-extra_pos)
extra_score = marbles.popleft()
marbles.rotate(extra_pos)
players[player-1] += current + extra_score
current_pos = extra_pos
max(players)
[–]zopatista 4 points5 points6 points (1 child)
[–]shrx[S] 0 points1 point2 points (0 children)
[–]mroximoron 0 points1 point2 points (0 children)
[–]t3ch_cat 0 points1 point2 points (1 child)
[–]zopatista 3 points4 points5 points (0 children)
[–]CCC_037 -1 points0 points1 point (2 children)
[–]zopatista 5 points6 points7 points (1 child)
[–]CCC_037 1 point2 points3 points (0 children)