diff --git a/day 20/day_20_bobv2.ipynb b/day 20/day_20_bobv2.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..52c11cd94ac7d19058028b420d55aecf7e8c644c
--- /dev/null
+++ b/day 20/day_20_bobv2.ipynb	
@@ -0,0 +1,83 @@
+{
+  "nbformat": 4,
+  "nbformat_minor": 0,
+  "metadata": {
+    "colab": {
+      "provenance": []
+    },
+    "kernelspec": {
+      "name": "python3",
+      "display_name": "Python 3"
+    },
+    "language_info": {
+      "name": "python"
+    }
+  },
+  "cells": [
+    {
+      "cell_type": "code",
+      "source": [
+        "# day 20\n",
+        "with open('input20.txt', 'r') as file:\n",
+        "    maze = [list(line.strip()) for line in file.readlines()]\n",
+        "    n,m = len(maze), len(maze[0])\n",
+        "    for r in range(n):\n",
+        "        for c in range(m):\n",
+        "            if maze[r][c] == 'S':\n",
+        "                start = (r, c)\n",
+        "            elif maze[r][c] == 'E':\n",
+        "                end = (r, c)\n",
+        "\n",
+        "# find path\n",
+        "maze[end[0]][end[1]] = '.'\n",
+        "path = [start]\n",
+        "(r,c) = start\n",
+        "while (r,c) != end:\n",
+        "    maze[r][c] = 'O'\n",
+        "    for (dr,dc) in [(-1, 0), (1, 0), (0, -1), (0, 1)]:\n",
+        "        if maze[r+dr][c+dc] == '.':\n",
+        "            path.append((r+dr,c+dc))\n",
+        "            r,c = r+dr,c+dc\n",
+        "            break\n",
+        "l = len(path)\n",
+        "\n",
+        "s1 = 0\n",
+        "for i in range(l):\n",
+        "    (ri,ci) = path[i]\n",
+        "    for j in range(i+102,l):\n",
+        "        (rj,cj) = path[j]\n",
+        "        if (ri==rj and abs(ci-cj)==2) or (ci==cj and abs(ri-rj)==2):\n",
+        "            s1 += 1\n",
+        "print(f\"solution to part1 = {s1}\")\n",
+        "\n",
+        "s2 = 0\n",
+        "for i in range(l):\n",
+        "    (ri,ci) = path[i]\n",
+        "    for j in range(i+100,l):\n",
+        "        (rj,cj) = path[j]\n",
+        "        man = abs(ri-rj) + abs(ci-cj)\n",
+        "        if man <= 20 and man + 100 <= j -i:\n",
+        "            s2 += 1\n",
+        "print(f\"solution to part2 = {s2}\")"
+      ],
+      "metadata": {
+        "id": "vhRxJ1CeJ5jo",
+        "colab": {
+          "base_uri": "https://localhost:8080/"
+        },
+        "outputId": "c4011094-36bd-4702-84ed-f2cf3c8870ac"
+      },
+      "execution_count": 64,
+      "outputs": [
+        {
+          "output_type": "stream",
+          "name": "stdout",
+          "text": [
+            "1448\n",
+            "1017615\n"
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file