16
16
def done (inp ):
17
17
for y in range (1 ,len (inp )- 1 ):
18
18
for x in range (1 ,len (inp [y ])- 1 ):
19
- if inp [y ][x ] > 9 and inp [ y ][ x ] < 100 :
19
+ if inp [y ][x ] > 9 :
20
20
return False
21
21
return True
22
22
@@ -37,22 +37,17 @@ def part1(inp):
37
37
while not done (inp ):
38
38
for y in range (1 ,len (inp )- 1 ):
39
39
for x in range (1 ,len (inp [y ])- 1 ):
40
- if inp [y ][x ] > 9 and inp [y ][x ] < 100 :
41
- inp [y ][x ] = 100
42
- if inp [y + 1 ][x + 1 ] >= 0 : inp [y + 1 ][x + 1 ] += 1
43
- if inp [y - 1 ][x - 1 ] >= 0 : inp [y - 1 ][x - 1 ] += 1
44
- if inp [y + 1 ][x - 1 ] >= 0 : inp [y + 1 ][x - 1 ] += 1
45
- if inp [y - 1 ][x + 1 ] >= 0 : inp [y - 1 ][x + 1 ] += 1
46
- if inp [y + 1 ][x ] >= 0 : inp [y + 1 ][x ] += 1
47
- if inp [y - 1 ][x ] >= 0 : inp [y - 1 ][x ] += 1
48
- if inp [y ][x + 1 ] >= 0 : inp [y ][x + 1 ] += 1
49
- if inp [y ][x - 1 ] >= 0 : inp [y ][x - 1 ] += 1
50
-
51
- for y in range (1 ,len (inp )- 1 ):
52
- for x in range (1 ,len (inp [y ])- 1 ):
53
- if inp [y ][x ] >= 100 :
54
- inp [y ][x ] = 0
55
- flashes += 1
40
+ if inp [y ][x ] > 9 :
41
+ inp [y ][x ] = 0
42
+ flashes += 1
43
+ if inp [y + 1 ][x + 1 ] > 0 : inp [y + 1 ][x + 1 ] += 1
44
+ if inp [y - 1 ][x - 1 ] > 0 : inp [y - 1 ][x - 1 ] += 1
45
+ if inp [y + 1 ][x - 1 ] > 0 : inp [y + 1 ][x - 1 ] += 1
46
+ if inp [y - 1 ][x + 1 ] > 0 : inp [y - 1 ][x + 1 ] += 1
47
+ if inp [y + 1 ][x ] > 0 : inp [y + 1 ][x ] += 1
48
+ if inp [y - 1 ][x ] > 0 : inp [y - 1 ][x ] += 1
49
+ if inp [y ][x + 1 ] > 0 : inp [y ][x + 1 ] += 1
50
+ if inp [y ][x - 1 ] > 0 : inp [y ][x - 1 ] += 1
56
51
print (flashes )
57
52
58
53
def part2 (inp ):
@@ -66,22 +61,18 @@ def part2(inp):
66
61
while not done (inp ):
67
62
for y in range (1 ,len (inp )- 1 ):
68
63
for x in range (1 ,len (inp [y ])- 1 ):
69
- if inp [y ][x ] > 9 and inp [y ][x ] < 100 :
70
- inp [y ][x ] = 100
71
- if inp [y + 1 ][x + 1 ] >= 0 : inp [y + 1 ][x + 1 ] += 1
72
- if inp [y - 1 ][x - 1 ] >= 0 : inp [y - 1 ][x - 1 ] += 1
73
- if inp [y + 1 ][x - 1 ] >= 0 : inp [y + 1 ][x - 1 ] += 1
74
- if inp [y - 1 ][x + 1 ] >= 0 : inp [y - 1 ][x + 1 ] += 1
75
- if inp [y + 1 ][x ] >= 0 : inp [y + 1 ][x ] += 1
76
- if inp [y - 1 ][x ] >= 0 : inp [y - 1 ][x ] += 1
77
- if inp [y ][x + 1 ] >= 0 : inp [y ][x + 1 ] += 1
78
- if inp [y ][x - 1 ] >= 0 : inp [y ][x - 1 ] += 1
64
+ if inp [y ][x ] > 9 :
65
+ inp [y ][x ] = 0
66
+ flashes += 1
67
+ if inp [y + 1 ][x + 1 ] > 0 : inp [y + 1 ][x + 1 ] += 1
68
+ if inp [y - 1 ][x - 1 ] > 0 : inp [y - 1 ][x - 1 ] += 1
69
+ if inp [y + 1 ][x - 1 ] > 0 : inp [y + 1 ][x - 1 ] += 1
70
+ if inp [y - 1 ][x + 1 ] > 0 : inp [y - 1 ][x + 1 ] += 1
71
+ if inp [y + 1 ][x ] > 0 : inp [y + 1 ][x ] += 1
72
+ if inp [y - 1 ][x ] > 0 : inp [y - 1 ][x ] += 1
73
+ if inp [y ][x + 1 ] > 0 : inp [y ][x + 1 ] += 1
74
+ if inp [y ][x - 1 ] > 0 : inp [y ][x - 1 ] += 1
79
75
80
- for y in range (1 ,len (inp )- 1 ):
81
- for x in range (1 ,len (inp [y ])- 1 ):
82
- if inp [y ][x ] >= 100 :
83
- inp [y ][x ] = 0
84
- flashes += 1
85
76
if flashes == 100 :
86
77
break
87
78
print (step )
0 commit comments