day 15, trivial
This commit is contained in:
parent
6be1a222b1
commit
a59c3c697c
|
@ -0,0 +1,12 @@
|
||||||
|
import sys
|
||||||
|
|
||||||
|
S=0
|
||||||
|
for l in sys.stdin.read().split(','):
|
||||||
|
c = 0
|
||||||
|
for w in l:
|
||||||
|
c += ord(w)
|
||||||
|
c *= 17
|
||||||
|
c = c % 256
|
||||||
|
print(l, c)
|
||||||
|
S += c
|
||||||
|
print(S)
|
|
@ -0,0 +1,26 @@
|
||||||
|
import sys
|
||||||
|
|
||||||
|
def hash(l):
|
||||||
|
c = 0
|
||||||
|
for w in l:
|
||||||
|
c += ord(w)
|
||||||
|
c *= 17
|
||||||
|
c = c % 256
|
||||||
|
return c
|
||||||
|
|
||||||
|
B = [ dict() for _ in range(256) ]
|
||||||
|
|
||||||
|
for l in sys.stdin.read().split(','):
|
||||||
|
e = l.find('=')
|
||||||
|
d = l.find('-')
|
||||||
|
i = max(e,d)
|
||||||
|
lbl = l[:i]
|
||||||
|
box = hash(lbl)
|
||||||
|
if e > 0: # set
|
||||||
|
v = int(l[i+1:])
|
||||||
|
B[box][lbl] = v
|
||||||
|
elif d > 0: # remove
|
||||||
|
if lbl in B[box]:
|
||||||
|
del B[box][lbl]
|
||||||
|
|
||||||
|
print(sum((i+1)*(j+1)*v for i, b in enumerate(B) for j,(k,v) in enumerate(b.items())))
|
Loading…
Reference in New Issue