-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDay6.py
100 lines (89 loc) · 3.41 KB
/
Day6.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
"""
*****************************************************
Advent of Code - Day 6
Probably a Fire Hazard
Which lights are lit up, given instructions for a
lights decorating contest?
*****************************************************
"""
def Day6():
grid = [[0] * 1000 for k in range(1000)]
fob = open("/Users/JustinZhou/Documents/Programming/AdventofCode/Day6textinput.txt", "r")
count = 0
for line in fob:
instr = line.split()
if instr[0] == "turn":
if instr[1] == "on":
x1 = int(instr[2].split(',')[0])
y1 = int(instr[2].split(',')[1])
x2 = int(instr[4].split(',')[0])
y2 = int(instr[4].split(',')[1])
for i in range(x2 - x1 + 1):
for j in range(y2 - y1 + 1):
tempx = x1 + i
tempy = y1 + j
grid[tempx][tempy] = 1
if instr[1] == "off":
x1 = int(instr[2].split(',')[0])
y1 = int(instr[2].split(',')[1])
x2 = int(instr[4].split(',')[0])
y2 = int(instr[4].split(',')[1])
for i in range(x2 - x1 + 1):
for j in range(y2 - y1 + 1):
grid[x1 + i][y1 + j] = 0
if instr[0] == "toggle":
x1 = int(instr[1].split(',')[0])
y1 = int(instr[1].split(',')[1])
x2 = int(instr[3].split(',')[0])
y2 = int(instr[3].split(',')[1])
for i in range(x2 - x1 + 1):
for j in range(y2 - y1 + 1):
if grid[x1 + i][y1 + j] == 0:
grid[x1 + i][y1 + j] = 1
else:
grid[x1 + i][y1 + j] = 0
for a in range(len(grid)):
for b in range(len(grid[a])):
if grid[a][b] == 1:
count += 1
print count
return
def Day6Bonus():
grid = [[0] * 1000 for k in range(1000)]
fob = open("/Users/JustinZhou/Documents/Programming/AdventofCode/Day6textinput.txt", "r")
count = 0
for line in fob:
instr = line.split()
if instr[0] == "turn":
if instr[1] == "on":
x1 = int(instr[2].split(',')[0])
y1 = int(instr[2].split(',')[1])
x2 = int(instr[4].split(',')[0])
y2 = int(instr[4].split(',')[1])
for i in range(x2 - x1 + 1):
for j in range(y2 - y1 + 1):
grid[x1 + i][y1 + j] += 1
if instr[1] == "off":
x1 = int(instr[2].split(',')[0])
y1 = int(instr[2].split(',')[1])
x2 = int(instr[4].split(',')[0])
y2 = int(instr[4].split(',')[1])
for i in range(x2 - x1 + 1):
for j in range(y2 - y1 + 1):
if grid[x1 + i][y1 + j] > 0:
grid[x1 + i][y1 + j] -= 1
if instr[0] == "toggle":
x1 = int(instr[1].split(',')[0])
y1 = int(instr[1].split(',')[1])
x2 = int(instr[3].split(',')[0])
y2 = int(instr[3].split(',')[1])
for i in range(x2 - x1 + 1):
for j in range(y2 - y1 + 1):
grid[x1 + i][y1 + j] += 2
for a in range(len(grid)):
for b in range(len(grid[a])):
count += grid[a][b]
print count
return
#Day6()
Day6Bonus()