""" advent1.py adventofcode.com 2017 day 1 """ def list2sum(the_list): """ convert list of character digits to its sum >>> list2sum(['1', '2', '3']) 6 >>> list2sum([]) 0 """ result = 0 for x in the_list: result = result + int(x) return result def part1(text): """ return sum of digits where next matches, with wrap >>> part1('1122') 3 >>> part1('1111') 4 >>> part1('1234') 0 """ n = len(text) keepers = [] for i in range(n): if i + 1 == n: if text[i] == text[0]: keepers.append(text[i]) else: if text[i] == text[i+1]: keepers.append(text[i]) # print(keepers) return list2sum(keepers) def part2(text): """ return sum of halfway around >>> part2('1212') 6 >>> part2('123123') 12 """ result = 0 n = len(text) for i in range(n): if text[i] == text[(i + int(n/2)) % n]: result = result + int(text[i]) return result def process_file(filename = 'input_1.txt'): text = open(filename).read().strip() answer1 = part1(text) print("The answer to part 1 is ", answer1) answer2 = part2(text) print("The answer to part 2 is ", answer2) if __name__ == '__main__': import doctest doctest.testmod() process_file()