diff --git a/14/a.py b/14/a.py new file mode 100755 index 0000000..ad9a0cb --- /dev/null +++ b/14/a.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 + + +def main(): + elves = [0, 1] + scores = [3, 7] + after = 503761 # puzzle input + + while True: + comb = str(sum([scores[i] for i in elves])) + for digit in comb: + newscore = int(digit) + scores.append(newscore) + slen = len(scores) + if slen > after: + print(newscore, end="") + if slen > after + 9: + print() + return + + for i, elf in enumerate(elves): + elves[i] = (elf + 1 + scores[elf]) % slen + + +if __name__ == '__main__': + main() + diff --git a/14/b.py b/14/b.py new file mode 100755 index 0000000..3354d51 --- /dev/null +++ b/14/b.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 + + +def main(): + elves = [0, 1] + scores = [3, 7] + endseq = [5, 0, 3, 7, 6, 1] # puzzle input + sqlen = len(endseq) + + while True: + comb = str(sum([scores[i] for i in elves])) + for digit in comb: + newscore = int(digit) + scores.append(newscore) + if scores[-sqlen:] == endseq: + print(len(scores) - len(endseq)) + return + scorelen = len(scores) + for i, elf in enumerate(elves): + elves[i] = (elf + 1 + scores[elf]) % scorelen + + +if __name__ == '__main__': + main() +