Inefficient but correct solution for day 22/2
This commit is contained in:
1 parent
9a0e5314e3
commit
5757e5fb19
1 file changed
+11
-7
+11
-7
@@ -19,26 +19,30 @@ if __name__ == '__main__':
|
||||
# challenge 1
|
||||
res1 = 0
|
||||
changes, values = {}, {}
|
||||
change_set = set([])
|
||||
for n in nums:
|
||||
secret = n
|
||||
changes[n] = [0] * 2000
|
||||
changes[n] = [[] for i in range(2000)]
|
||||
values[n] = [0] * 2000
|
||||
ob = int(str(secret)[-1])
|
||||
for i in range(2000):
|
||||
secret = prg(secret)
|
||||
bananas = int(str(secret)[-1])
|
||||
changes[n][i] = bananas - ob
|
||||
for j in range(i,min(2000,i+4)):
|
||||
changes[n][j].append(bananas - ob)
|
||||
values[n][i] = bananas
|
||||
ob = bananas
|
||||
res1 += secret
|
||||
|
||||
print(f"challenge 1:\n{res1}\n")
|
||||
# for i, c in enumerate(changes[123][3:10]):
|
||||
# if c > 0: print(changes[123][i:i+4])
|
||||
print(changes[123][:10])
|
||||
|
||||
# challenge 2
|
||||
# challenge 2 (could be more efficient i guess)
|
||||
res2 = 0
|
||||
for n in nums:
|
||||
change_set = change_set.union(set([tuple(c) if c[-1] > 1 else () for c in changes[n]]))
|
||||
for c in list(change_set):
|
||||
if c != () and c[-1] > 1 and sum([list(c) in changes[num] for num in nums]) > 100:
|
||||
res2 = max(sum([values[num][changes[num].index(list(c))] if list(c) in changes[num] else 0 for num in nums]), res2)
|
||||
|
||||
res2 = ""
|
||||
print(f"challenge 2:\n{res2}")
|
||||
|
||||
Reference in new issue
Block a user