blob: 6b3594fcf276ad7534f5cea86b15315c053cb279 (
plain) (
blame)
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
|
import sys
sys.path.append("../common")
import aoc
data = aoc.data.split("\n")
def solve1(args):
doubles = 0
triples = 0
for s in data:
counts = list((0,) * 26)
for c in s:
counts[ord(c[0])-97] += 1
if 2 in counts:
doubles += 1
if 3 in counts:
triples += 1
return doubles * triples
def compare(s1, s2):
dif = 0
same = list()
for i in range(len(s1)):
if s1[i] != s2[i]:
dif += 1
else:
same.append(s1[i])
return (dif, same)
def solve2(args):
for i in range(len(data)):
for j in range(i, len(data)):
if i == j:
continue
res = compare(data[i], data[j])
if res[0] == 1:
return "".join(res[1])
aoc.run(solve1, solve2, sols=[3952, "vtnikorkulbfejvyznqgdxpaw"])
|