Tweaked day 1 solutions
authorNeil Smith <neil.git@njae.me.uk>
Mon, 17 Jul 2017 18:12:17 +0000 (19:12 +0100)
committerNeil Smith <neil.git@njae.me.uk>
Mon, 17 Jul 2017 18:12:17 +0000 (19:12 +0100)
01-ticket-prices/day1-ruby.ipynb
01-ticket-prices/ticket-pricing-solution.ipynb

index 2c2d07b889b620ca88c9f11144e720a3cfd7399a..aa57e34ebd455b7315d4a80366a49ac7c1b6866f 100644 (file)
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 1,
    "metadata": {
     "scrolled": true
    },
@@ -13,7 +13,7 @@
        "[[\"dda7d369\", \"1546\", \"Uzupis\", \"21\"], [\"68022753\", \"1239\", \"Mamula\", \"21\"], [\"b261dbd1cef\", \"996\", \"Holmegaard\", \"21\"], [\"5b23fa704734\", \"1194\", \"Giessenmestia\", \"14\"], [\"7b049264\", \"1077\", \"Hajnowski\", \"10\"], [\"ce8b3fcd44b1\", \"849\", \"Sofia\", \"14\"], [\"68660362\", \"1568\", \"Morgantown\", \"21\"], [\"ea6c84938e2\", \"1310\", \"Nullarbor\", \"7\"], [\"1385d067d40b\", \"1365\", \"Zhangye-Shi\", \"7\"], [\"4ebc5e0b\", \"1227\", \"Uzupis\", \"7\"], [\"ee064e1e2ea\", \"785\", \"Nullarbor\", \"14\"], [\"34f7247adaf\", \"1413\", \"Nordkapp\", \"10\"], [\"ec5f5691\", \"1150\", \"Luoyang\", \"14\"], [\"b1aa6c5d8a\", \"821\", \"Estacada\", \"21\"], [\"71573a6513\", \"1259\", \"Giessenmestia\", \"7\"], [\"a87ad38a7\", \"879\", \"Aalborg\", \"21\"], [\"67985d6aa\", \"1525\", \"Stonington-Island\", \"14\"], [\"303db888d\", \"1316\", \"Tubakuba\", \"7\"], [\"6f2f9ff6b7bd\", \"903\", \"Zhangye-Shi\", \"3\"], [\"54670c3136d\", \"1254\", \"Luoyang\", \"7\"], [\"e1f3bd201\", \"1379\", \"Uzupis\", \"14\"], [\"a2dd4aec\", \"1160\", \"Nullarbor\", \"3\"], [\"398d3e972f49\", \"1194\", \"Estacada\", \"14\"], [\"cd227c32d4e\", \"984\", \"Estacada\", \"14\"], [\"16935ed587bf\", \"1312\", \"Grimsey-Island\", \"14\"], [\"ceb26b792\", \"1352\", \"Sofia\", \"21\"], [\"952801ceb36\", \"1126\", \"Stonington-Island\", \"7\"], [\"7f1a85bc\", \"1140\", \"Luoyang\", \"7\"], [\"d6b03403\", \"1207\", \"Morgantown\", \"14\"], [\"3251b683b9f\", \"1466\", \"Zhangye-Shi\", \"21\"], [\"134d5f5b3f\", \"1399\", \"Tambon-Pa-Fa\", \"14\"], [\"732cbc2c276b\", \"947\", \"Sukhumi\", \"14\"], [\"60fdf85cf570\", \"1002\", \"Almaty\", \"14\"], [\"303965365c4\", \"1594\", \"Sofia\", \"14\"], [\"1fc012fcb7c5\", \"1081\", \"Jayuya\", \"21\"], [\"579302498bdc\", \"1076\", \"Parowan\", \"14\"], [\"27861346\", \"1046\", \"Grimsey-Island\", \"14\"], [\"9a226b7b33c\", \"906\", \"Hajnowski\", \"7\"], [\"943fa28d\", \"1541\", \"Karlukovo\", \"7\"], [\"c3cac7d3bc\", \"813\", \"Ijsseloog\", \"7\"], [\"41c837263600\", \"1083\", \"Puente-Laguna-Garzonkuala-Penyu\", \"14\"], [\"4a642c384ea\", \"1146\", \"Sukhumi\", \"14\"], [\"9997e977978\", \"1170\", \"Geoje-Si\", \"14\"], [\"eaa91671\", \"943\", \"Stonington-Island\", \"14\"], [\"26ae2d0b7\", \"1188\", \"Aalborg\", \"7\"], [\"1634fe98c256\", \"1058\", \"Jayuya\", \"7\"], [\"1892f12d6\", \"948\", \"Stonington-Island\", \"14\"], [\"2407d5e3\", \"1234\", \"Sofia\", \"7\"], [\"49e8530b61a0\", \"1061\", \"Nullarbor\", \"3\"], [\"c1254c8fc9a\", \"909\", \"Puente-Laguna-Garzonkuala-Penyu\", \"7\"], [\"a3fec18095\", \"1256\", \"Geoje-Si\", \"7\"], [\"650a2b292e5c\", \"1623\", \"Puente-Laguna-Garzonkuala-Penyu\", \"14\"], [\"bf75e25a6b8\", \"1448\", \"Puente-Laguna-Garzonkuala-Penyu\", \"7\"], [\"44dadca0cd9\", \"1345\", \"Aalborg\", \"7\"], [\"4caefcacded0\", \"1644\", \"Gorongosa\", \"21\"], [\"de5d04b2c3a\", \"867\", \"Tubakuba\", \"7\"], [\"aea2a458023\", \"727\", \"Brorfelde\", \"21\"], [\"c5f99dca95e\", \"1727\", \"Morgantown\", \"14\"], [\"2ee77108\", \"1549\", \"Mora\", \"7\"], [\"4809881ff7\", \"1380\", \"Holmegaard\", \"7\"], [\"5d2c9d24\", \"1263\", \"Giessenmestia\", \"21\"], [\"67c14f2635\", \"1157\", \"Stonington-Island\", \"7\"], [\"3962815e6\", \"1497\", \"Ijsseloog\", \"7\"], [\"757f3c9f5\", \"1208\", \"Hajnowski\", \"14\"], [\"e1cd5acf5\", \"1044\", \"Stonington-Island\", \"14\"], [\"0ee0ff115\", \"1181\", \"Jayuya\", \"21\"], [\"06af8642ff\", \"1389\", \"Sofia\", \"7\"], [\"46c6b6fa76\", \"1184\", \"Hajnowski\", \"14\"], [\"435b4e82\", \"1429\", \"Morgantown\", \"21\"], [\"35ea596f\", \"1613\", \"Tubakuba\", \"7\"], [\"f7cbb3da7e6\", \"731\", \"Aalborg\", \"14\"], [\"e1df7ea96302\", \"1483\", \"Almaty\", \"7\"], [\"6fb97c1a3\", \"993\", \"Almaty\", \"7\"], [\"c86e2e5826\", \"1331\", \"Morgantown\", \"21\"], [\"995f57877aac\", \"1155\", \"Tambon-Pa-Fa\", \"14\"], [\"6ffab38e7b\", \"1228\", \"Mamula\", \"14\"], [\"f60e203aaaf9\", \"623\", \"Lemnos\", \"21\"], [\"1942931f2\", \"1219\", \"Parowan\", \"14\"], [\"da926535df\", \"1383\", \"Jayuya\", \"7\"], [\"b1dc6df3240\", \"1261\", \"Holmegaard\", \"7\"], [\"df7bd3ee5\", \"1209\", \"Parowan\", \"7\"], [\"b4e498b9ed\", \"1060\", \"Geoje-Si\", \"14\"], [\"bce7bdf7c\", \"878\", \"Lemnos\", \"10\"], [\"1ab9eb3d5422\", \"1376\", \"Tambon-Pa-Fa\", \"14\"], [\"839240114\", \"1546\", \"Tubakuba\", \"7\"], [\"04feb63602\", \"1050\", \"Ijsseloog\", \"14\"], [\"cb89673b727\", \"1681\", \"Ijsseloog\", \"14\"], [\"1e38291d\", \"1438\", \"Luoyang\", \"14\"], [\"f806fc9d\", \"1553\", \"Nordkapp\", \"21\"], [\"a1342d1ec\", \"1368\", \"Ijsseloog\", \"7\"], [\"4a67a59a\", \"1055\", \"Almaty\", \"7\"], [\"c11e991e22ea\", \"1453\", \"Nullarbor\", \"3\"], [\"d168673f959\", \"1330\", \"Karlukovo\", \"7\"], [\"3b1a78218bb5\", \"1083\", \"Tambon-Pa-Fa\", \"10\"], [\"4435ea0d0c5d\", \"1205\", \"Tambon-Pa-Fa\", \"7\"], [\"7a9b44f3bcc\", \"1277\", \"Mora\", \"14\"], [\"0ba9dcee27f3\", \"1261\", \"Karlukovo\", \"14\"], [\"705baebce\", \"1287\", \"Tubakuba\", \"3\"], [\"353e6dc9\", \"1039\", \"Sukhumi\", \"10\"], [\"c9c6d041\", \"1194\", \"Mora\", \"14\"], [\"33123a00\", \"1438\", \"Grimsey-Island\", \"14\"], [\"83f28647\", \"973\", \"Jayuya\", \"7\"], [\"b8521145\", \"1338\", \"Ijsseloog\", \"7\"], [\"b70e605889\", \"834\", \"Puente-Laguna-Garzonkuala-Penyu\", \"10\"], [\"11896bedc4\", \"999\", \"Morgantown\", \"7\"], [\"6ed9a88972\", \"1295\", \"Holmegaard\", \"14\"], [\"166b77df\", \"979\", \"Zhangye-Shi\", \"14\"], [\"fc05fce8d\", \"1551\", \"Lemnos\", \"14\"], [\"4ce3111c66\", \"1106\", \"Karlukovo\", \"10\"], [\"b96caebcfd6\", \"1155\", \"Geoje-Si\", \"21\"], [\"17d3decd842\", \"1041\", \"Ijsseloog\", \"7\"], [\"b6d482b92\", \"1497\", \"Estacada\", \"14\"], [\"1fb40d6b\", \"1568\", \"Stonington-Island\", \"7\"], [\"b4db7910\", \"1300\", \"Ijsseloog\", \"10\"], [\"153da27bcb75\", \"1030\", \"Ijsseloog\", \"3\"], [\"1afd05d3ea88\", \"1072\", \"Parowan\", \"7\"], [\"1541ba11\", \"1047\", \"Almaty\", \"7\"], [\"38b01883fd\", \"1309\", \"Mamula\", \"10\"], [\"f22b8e717c\", \"1401\", \"Tambon-Pa-Fa\", \"21\"], [\"4ad6523f\", \"1085\", \"Luoyang\", \"7\"], [\"38b9690d981\", \"1204\", \"Jayuya\", \"14\"], [\"bfc72b962\", \"1153\", \"Tambon-Pa-Fa\", \"14\"], [\"b116bf9bd\", \"1307\", \"Zhangye-Shi\", \"21\"], [\"7b1c64c74\", \"1361\", \"Tambon-Pa-Fa\", \"10\"]]"
       ]
      },
-     "execution_count": 4,
+     "execution_count": 1,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -25,7 +25,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 2,
    "metadata": {},
    "outputs": [
     {
@@ -34,7 +34,7 @@
        ":affordable_holidays"
       ]
      },
-     "execution_count": 7,
+     "execution_count": 2,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -47,7 +47,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [
     {
@@ -56,7 +56,7 @@
        "59"
       ]
      },
-     "execution_count": 9,
+     "execution_count": 3,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -67,7 +67,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [
     {
@@ -76,7 +76,7 @@
        "59"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 4,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -87,7 +87,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 28,
+   "execution_count": 5,
    "metadata": {},
    "outputs": [
     {
@@ -96,7 +96,7 @@
        "1.0"
       ]
      },
-     "execution_count": 28,
+     "execution_count": 5,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 29,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
        "2.0"
       ]
      },
-     "execution_count": 29,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 30,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
        "1.0"
       ]
      },
-     "execution_count": 30,
+     "execution_count": 7,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 31,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
        ":value"
       ]
      },
-     "execution_count": 31,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 32,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [
     {
        "0.012225097024579561"
       ]
      },
-     "execution_count": 32,
+     "execution_count": 9,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 34,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [
     {
        "\"ee064e1e2ea\""
       ]
      },
-     "execution_count": 34,
+     "execution_count": 10,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "affordable_holidays(holidays).max_by {|h| value h}[0]"
+    "affordable_holidays(holidays).max_by {|h| value h}.first"
    ]
   },
   {
index 138088793b3fa3c59a00142ea2ba4cd9518d688e..8ba20442b6dae95c16ff439de4d42a0c242d26c1 100644 (file)
@@ -50,7 +50,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 2,
    "metadata": {},
    "outputs": [
     {
@@ -61,7 +61,7 @@
        " ['b261dbd1cef', '996', 'Holmegaard', '21']]"
       ]
      },
-     "execution_count": 12,
+     "execution_count": 2,
      "metadata": {},
      "output_type": "execute_result"
     }
    "source": [
     "holidays = []\n",
     "with open('01-holidays.txt') as f:\n",
-    "    for hol_line in f.readlines():\n",
+    "    for hol_line in f:\n",
     "        holidays.append(hol_line.split())\n",
     "        \n",
     "holidays[:3]"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[['dda7d369', '1546', 'Uzupis', '21'],\n",
+       " ['68022753', '1239', 'Mamula', '21'],\n",
+       " ['b261dbd1cef', '996', 'Holmegaard', '21']]"
+      ]
+     },
+     "execution_count": 3,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "holidays = [line.split() for line in open('01-holidays.txt')]\n",
+    "        \n",
+    "holidays[:3]"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": 13,
     "len(affordable_holidays)"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "59"
+      ]
+     },
+     "execution_count": 5,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "affordable_holidays = [h for h in holidays if int(h[1]) <= 1200]\n",
+    "len(affordable_holidays)"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": 14,
   },
   {
    "cell_type": "code",
-   "execution_count": 15,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [
     {
        "59"
       ]
      },
-     "execution_count": 15,
+     "execution_count": 4,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "sum(1 for h in open('01-holidays.txt').readlines() if int(h.split()[1]) <= 1200)"
+    "sum(1 for h in open('01-holidays.txt') if int(h.split()[1]) <= 1200)"
    ]
   },
   {