Update advent of code
This commit is contained in:
49
2021/25.py
Normal file
49
2021/25.py
Normal file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/python3
|
||||
import sys
|
||||
import heapq
|
||||
import itertools
|
||||
import re
|
||||
import ast
|
||||
from collections import defaultdict, Counter, deque
|
||||
from copy import deepcopy
|
||||
|
||||
#submit(len(G), part="a", day=25, year=2021)
|
||||
infile = sys.argv[1] if len(sys.argv)>1 else './2021/25.input'
|
||||
data = open(infile).read().strip()
|
||||
|
||||
G = []
|
||||
for line in data.split('\n'):
|
||||
assert line.strip() == line
|
||||
G.append(line)
|
||||
R = len(G)
|
||||
C = len(G[0])
|
||||
|
||||
t = 0
|
||||
while True:
|
||||
t += 1
|
||||
moved = False
|
||||
G2 = [[G[r][c] for c in range(C)] for r in range(R)]
|
||||
for r in range(R):
|
||||
for c in range(C):
|
||||
if G[r][c] == '>':
|
||||
if G[r][(c+1)%C] == '.':
|
||||
moved = True
|
||||
G2[r][(c+1)%C] = '>'
|
||||
G2[r][c] = '.'
|
||||
G3 = [[G2[r][c] for c in range(C)] for r in range(R)]
|
||||
for r in range(R):
|
||||
for c in range(C):
|
||||
if G2[r][c] == 'v' and G2[(r+1)%R][c] == '.':
|
||||
moved = True
|
||||
G3[(r+1)%R][c] = 'v'
|
||||
G3[r][c] = '.'
|
||||
if not moved:
|
||||
print(t)
|
||||
sys.exit(0)
|
||||
G = G3
|
||||
#print(t, moved)
|
||||
#for r in range(R):
|
||||
# row = ''
|
||||
# for c in range(C):
|
||||
# row += G[r][c]
|
||||
# print(row)
|
||||
Reference in New Issue
Block a user