Fixed typo
[advent-of-code-15.git] / advent20.ipynb
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": 1,
6 "metadata": {
7 "collapsed": true
8 },
9 "outputs": [],
10 "source": [
11 "target = 33100000"
12 ]
13 },
14 {
15 "cell_type": "code",
16 "execution_count": 2,
17 "metadata": {
18 "collapsed": true
19 },
20 "outputs": [],
21 "source": [
22 "import collections"
23 ]
24 },
25 {
26 "cell_type": "code",
27 "execution_count": 3,
28 "metadata": {
29 "collapsed": false
30 },
31 "outputs": [
32 {
33 "data": {
34 "text/plain": [
35 "defaultdict(<class 'int'>, {})"
36 ]
37 },
38 "execution_count": 3,
39 "metadata": {},
40 "output_type": "execute_result"
41 }
42 ],
43 "source": [
44 "houses = collections.defaultdict(int)\n",
45 "houses"
46 ]
47 },
48 {
49 "cell_type": "code",
50 "execution_count": 4,
51 "metadata": {
52 "collapsed": true
53 },
54 "outputs": [],
55 "source": [
56 "for elf in range(1, target // 10 + 1):\n",
57 " for house in range(elf, target // 10 + 1, elf):\n",
58 " houses[house] += elf * 10"
59 ]
60 },
61 {
62 "cell_type": "code",
63 "execution_count": 5,
64 "metadata": {
65 "collapsed": false
66 },
67 "outputs": [
68 {
69 "data": {
70 "text/plain": [
71 "[(1, 10),\n",
72 " (2, 30),\n",
73 " (3, 40),\n",
74 " (4, 70),\n",
75 " (5, 60),\n",
76 " (6, 120),\n",
77 " (7, 80),\n",
78 " (8, 150),\n",
79 " (9, 130)]"
80 ]
81 },
82 "execution_count": 5,
83 "metadata": {},
84 "output_type": "execute_result"
85 }
86 ],
87 "source": [
88 "[(h, houses[h]) for h in range(1, 10)]"
89 ]
90 },
91 {
92 "cell_type": "code",
93 "execution_count": 6,
94 "metadata": {
95 "collapsed": false
96 },
97 "outputs": [
98 {
99 "data": {
100 "text/plain": [
101 "776160"
102 ]
103 },
104 "execution_count": 6,
105 "metadata": {},
106 "output_type": "execute_result"
107 }
108 ],
109 "source": [
110 "min(h for h in houses if houses[h] >= target)"
111 ]
112 },
113 {
114 "cell_type": "code",
115 "execution_count": 7,
116 "metadata": {
117 "collapsed": false
118 },
119 "outputs": [
120 {
121 "data": {
122 "text/plain": [
123 "defaultdict(<class 'int'>, {})"
124 ]
125 },
126 "execution_count": 7,
127 "metadata": {},
128 "output_type": "execute_result"
129 }
130 ],
131 "source": [
132 "houses2 = collections.defaultdict(int)\n",
133 "houses2"
134 ]
135 },
136 {
137 "cell_type": "code",
138 "execution_count": null,
139 "metadata": {
140 "collapsed": true
141 },
142 "outputs": [],
143 "source": [
144 "for elf in range(1, target // 10 + 1):\n",
145 " for house in range(1, 51):\n",
146 " houses2[elf * house] += elf * 11"
147 ]
148 },
149 {
150 "cell_type": "code",
151 "execution_count": null,
152 "metadata": {
153 "collapsed": false
154 },
155 "outputs": [],
156 "source": [
157 "min(h for h in houses2 if houses2[h] >= target)"
158 ]
159 },
160 {
161 "cell_type": "code",
162 "execution_count": null,
163 "metadata": {
164 "collapsed": true
165 },
166 "outputs": [],
167 "source": []
168 }
169 ],
170 "metadata": {
171 "kernelspec": {
172 "display_name": "Python 3",
173 "language": "python",
174 "name": "python3"
175 },
176 "language_info": {
177 "codemirror_mode": {
178 "name": "ipython",
179 "version": 3
180 },
181 "file_extension": ".py",
182 "mimetype": "text/x-python",
183 "name": "python",
184 "nbconvert_exporter": "python",
185 "pygments_lexer": "ipython3",
186 "version": "3.4.3"
187 }
188 },
189 "nbformat": 4,
190 "nbformat_minor": 0
191 }