Fixed typo
[advent-of-code-15.git] / advent12.ipynb
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": 2,
6 "metadata": {
7 "collapsed": false
8 },
9 "outputs": [
10 {
11 "data": {
12 "text/plain": [
13 "8"
14 ]
15 },
16 "execution_count": 2,
17 "metadata": {},
18 "output_type": "execute_result"
19 }
20 ],
21 "source": [
22 "import json\n",
23 "\n",
24 "pi12 = json.load(open('advent12.json'))\n",
25 "len(pi12)"
26 ]
27 },
28 {
29 "cell_type": "code",
30 "execution_count": 6,
31 "metadata": {
32 "collapsed": false
33 },
34 "outputs": [],
35 "source": [
36 "def jsum(term):\n",
37 " if isinstance(term, dict):\n",
38 " return sum(jsum(k) + jsum(v) for k, v in term.items())\n",
39 " elif isinstance(term, list):\n",
40 " return sum(jsum(e) for e in term)\n",
41 " elif isinstance(term, int):\n",
42 " return term\n",
43 " elif isinstance(term, str):\n",
44 " return 0\n",
45 " else:\n",
46 " raise ArgumentError"
47 ]
48 },
49 {
50 "cell_type": "code",
51 "execution_count": 14,
52 "metadata": {
53 "collapsed": false
54 },
55 "outputs": [
56 {
57 "data": {
58 "text/plain": [
59 "0"
60 ]
61 },
62 "execution_count": 14,
63 "metadata": {},
64 "output_type": "execute_result"
65 }
66 ],
67 "source": [
68 "jsum({})"
69 ]
70 },
71 {
72 "cell_type": "code",
73 "execution_count": 16,
74 "metadata": {
75 "collapsed": false
76 },
77 "outputs": [
78 {
79 "data": {
80 "text/plain": [
81 "191164"
82 ]
83 },
84 "execution_count": 16,
85 "metadata": {},
86 "output_type": "execute_result"
87 }
88 ],
89 "source": [
90 "jsum(pi12)"
91 ]
92 },
93 {
94 "cell_type": "code",
95 "execution_count": 17,
96 "metadata": {
97 "collapsed": false
98 },
99 "outputs": [],
100 "source": [
101 "def jsum2(term):\n",
102 " if isinstance(term, dict):\n",
103 " if 'red' in term or 'red' in term.values():\n",
104 " return 0\n",
105 " else:\n",
106 " return sum(jsum2(k) + jsum2(v) for k, v in term.items())\n",
107 " elif isinstance(term, list):\n",
108 " return sum(jsum2(e) for e in term)\n",
109 " elif isinstance(term, int):\n",
110 " return term\n",
111 " elif isinstance(term, str):\n",
112 " return 0\n",
113 " else:\n",
114 " raise ArgumentError"
115 ]
116 },
117 {
118 "cell_type": "code",
119 "execution_count": 18,
120 "metadata": {
121 "collapsed": false
122 },
123 "outputs": [
124 {
125 "data": {
126 "text/plain": [
127 "87842"
128 ]
129 },
130 "execution_count": 18,
131 "metadata": {},
132 "output_type": "execute_result"
133 }
134 ],
135 "source": [
136 "jsum2(pi12)"
137 ]
138 },
139 {
140 "cell_type": "code",
141 "execution_count": null,
142 "metadata": {
143 "collapsed": true
144 },
145 "outputs": [],
146 "source": []
147 }
148 ],
149 "metadata": {
150 "kernelspec": {
151 "display_name": "Python 3",
152 "language": "python",
153 "name": "python3"
154 },
155 "language_info": {
156 "codemirror_mode": {
157 "name": "ipython",
158 "version": 3
159 },
160 "file_extension": ".py",
161 "mimetype": "text/x-python",
162 "name": "python",
163 "nbconvert_exporter": "python",
164 "pygments_lexer": "ipython3",
165 "version": "3.4.3"
166 }
167 },
168 "nbformat": 4,
169 "nbformat_minor": 0
170 }