2019 day 2 and 3
This commit is contained in:
41
2019/d2.py
Normal file
41
2019/d2.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from lib import get_data, str_to_ints
|
||||
|
||||
|
||||
def part_1(data):
|
||||
xs = str_to_ints(data)
|
||||
xs[1] = 12
|
||||
xs[2] = 2
|
||||
for i in range(0, len(xs), 4):
|
||||
match xs[i]:
|
||||
case 1:
|
||||
xs[xs[i + 3]] = xs[xs[i + 1]] + xs[xs[i + 2]]
|
||||
case 2:
|
||||
xs[xs[i + 3]] = xs[xs[i + 1]] * xs[xs[i + 2]]
|
||||
print(xs[0])
|
||||
|
||||
|
||||
def part_2(data):
|
||||
for noun in range(1, 101):
|
||||
for verb in range(1, 101):
|
||||
xs = str_to_ints(data)
|
||||
xs[1] = noun
|
||||
xs[2] = verb
|
||||
for i in range(0, len(xs), 4):
|
||||
match xs[i]:
|
||||
case 1:
|
||||
xs[xs[i + 3]] = xs[xs[i + 1]] + xs[xs[i + 2]]
|
||||
case 2:
|
||||
xs[xs[i + 3]] = xs[xs[i + 1]] * xs[xs[i + 2]]
|
||||
if xs[0] == 19690720:
|
||||
print(100 * noun + verb)
|
||||
return
|
||||
|
||||
|
||||
def main():
|
||||
data = get_data(__file__)
|
||||
part_1(data)
|
||||
part_2(data)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user