{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import aocd\n", "\n", "data = aocd.get_data(year=2017, day=1)\n", "inputvalue = data.strip()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Part 1: 1175\n" ] } ], "source": [ "def captcha_next(inputvalue):\n", " same_as_next = (\n", " digit\n", " for digit, next in zip(inputvalue, inputvalue[1:] + inputvalue[0])\n", " if digit == next\n", " )\n", " return sum(map(int, same_as_next))\n", "\n", "\n", "tests = {\n", " \"1122\": 3,\n", " \"1111\": 4,\n", " \"1234\": 0,\n", " \"91212129\": 9,\n", "}\n", "for in_, out in tests.items():\n", " assert captcha_next(in_) == out\n", "\n", "print(\"Part 1:\", captcha_next(inputvalue))" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Part 2: 1166\n" ] } ], "source": [ "def captcha_halfway(inputvalue):\n", " halfway = len(inputvalue) // 2\n", " same_as_halfway = (\n", " digit\n", " for digit, other in zip(inputvalue, inputvalue[halfway:] + inputvalue[:halfway])\n", " if digit == other\n", " )\n", " return sum(map(int, same_as_halfway))\n", "\n", "\n", "tests = {\n", " \"1212\": 6,\n", " \"1221\": 0,\n", " \"123425\": 4,\n", " \"123123\": 12,\n", " \"12131415\": 4,\n", "}\n", "for in_, out in tests.items():\n", " assert captcha_halfway(in_) == out\n", "\n", "print(\"Part 2:\", captcha_halfway(inputvalue))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.0" } }, "nbformat": 4, "nbformat_minor": 2 }