import aocd
data = aocd.get_data(year=2017, day=1)
inputvalue = data.strip()
def captcha_next(inputvalue):
same_as_next = (
digit
for digit, next in zip(inputvalue, inputvalue[1:] + inputvalue[0])
if digit == next
)
return sum(map(int, same_as_next))
tests = {
"1122": 3,
"1111": 4,
"1234": 0,
"91212129": 9,
}
for in_, out in tests.items():
assert captcha_next(in_) == out
print("Part 1:", captcha_next(inputvalue))
Part 1: 1175
def captcha_halfway(inputvalue):
halfway = len(inputvalue) // 2
same_as_halfway = (
digit
for digit, other in zip(inputvalue, inputvalue[halfway:] + inputvalue[:halfway])
if digit == other
)
return sum(map(int, same_as_halfway))
tests = {
"1212": 6,
"1221": 0,
"123425": 4,
"123123": 12,
"12131415": 4,
}
for in_, out in tests.items():
assert captcha_halfway(in_) == out
print("Part 2:", captcha_halfway(inputvalue))
Part 2: 1166