diff --git a/Book_1.ipynb b/Book_1.ipynb index a709bc5..70a34a2 100644 --- a/Book_1.ipynb +++ b/Book_1.ipynb @@ -18,7 +18,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "id": "1e6ac084-5bf9-43f7-a7a6-8c8e20066159", "metadata": {}, "outputs": [], @@ -1171,6 +1171,137 @@ "print(total)\n", "\n" ] + }, + { + "cell_type": "markdown", + "id": "91ac3836-de08-4657-9459-7d4c20bb1a5c", + "metadata": {}, + "source": [ + "## Puzzel 11" + ] + }, + { + "cell_type": "markdown", + "id": "8a1b6307-042f-4337-86a8-74e47c78a465", + "metadata": {}, + "source": [ + "### Deel 1" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "id": "6bb3ddca-1658-45b8-ad18-dec10651a42a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "9605127" + ] + }, + "execution_count": 114, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data = open('data/puzzle_11.txt', 'r').readlines()\n", + "data = [re.sub('\\n', '', line) for line in data]\n", + "\n", + "new_data = []\n", + "# expand rows\n", + "for line in data:\n", + " if len(set(list(line))) == 1:\n", + " new_data.append(line)\n", + " new_data.append(line)\n", + "data = new_data\n", + "\n", + "new_data = []\n", + "\n", + "# expand galaxy columns\n", + "for line in data:\n", + " new_line = \"\"\n", + " for i, value in enumerate(line):\n", + " if '#' not in [row[i] for row in data]:\n", + " new_line += '..'\n", + " else:\n", + " total += 1\n", + " new_line += value\n", + " new_data.append(new_line)\n", + "\n", + "galaxies = []\n", + "for row_number, line in enumerate(new_data):\n", + " for col_number, value in enumerate(line):\n", + " if value == '#':\n", + " galaxies.append((row_number, col_number))\n", + "pairs = set([frozenset([galaxy_1, galaxy_2]) for galaxy_1 in galaxies for galaxy_2 in galaxies if galaxy_1 != galaxy_2])\n", + "distances = []\n", + "for galaxy_pair in pairs:\n", + " pair = list(galaxy_pair)\n", + "\n", + " x_diff = abs(pair[0][0] - pair[1][0])\n", + " y_diff = abs(pair[0][1] - pair[1][1])\n", + " distances.append(x_diff + y_diff)\n", + "sum(distances)\n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "id": "21e469fc-c8be-414d-9c98-e5fc63da02ce", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "458191688761" + ] + }, + "execution_count": 117, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data = open('data/puzzle_11.txt', 'r').readlines()\n", + "data = [re.sub('\\n', '', line) for line in data]\n", + "galaxies = []\n", + "for row_number, line in enumerate(data):\n", + " for col_number, value in enumerate(line):\n", + " if value == '#':\n", + " galaxies.append((row_number, col_number))\n", + "\n", + "expanded_rows = [i for i, line in enumerate(data) if \"#\" not in line]\n", + "expanded_cols = [i for i in range(len(data[0])) if '#' not in [row[i] for row in data]]\n", + "\n", + "pairs = set([frozenset([galaxy_1, galaxy_2]) for galaxy_1 in galaxies for galaxy_2 in galaxies if galaxy_1 != galaxy_2])\n", + "distances = []\n", + "for galaxy_pair in pairs:\n", + " pair = list(galaxy_pair)\n", + " x1, y1 = pair[0]\n", + " x2, y2 = pair[1]\n", + " x_diff = abs(x1-x2)\n", + " y_diff = abs(y1-y2)\n", + " \n", + " for expanded_row in expanded_rows:\n", + " if x2 < expanded_row < x1:\n", + " x_diff += 999999\n", + " if x1 < expanded_row < x2:\n", + " x_diff += 999999\n", + " for expanded_col in expanded_cols:\n", + " if y1 < expanded_col < y2:\n", + " y_diff += 999999\n", + " if y2 < expanded_col < y1:\n", + " y_diff += 999999\n", + " \n", + "\n", + " \n", + " distances.append(x_diff + y_diff)\n", + "sum(distances)" + ] } ], "metadata": { diff --git a/pretty_read.md b/pretty_read.md index d7db188..a9338f1 100644 --- a/pretty_read.md +++ b/pretty_read.md @@ -763,3 +763,104 @@ print(total) 451 + +## Puzzel 11 + +### Deel 1 + + +```python +data = open('data/puzzle_11.txt', 'r').readlines() +data = [re.sub('\n', '', line) for line in data] + +new_data = [] +# expand rows +for line in data: + if len(set(list(line))) == 1: + new_data.append(line) + new_data.append(line) +data = new_data + +new_data = [] + +# expand galaxy columns +for line in data: + new_line = "" + for i, value in enumerate(line): + if '#' not in [row[i] for row in data]: + new_line += '..' + else: + total += 1 + new_line += value + new_data.append(new_line) + +galaxies = [] +for row_number, line in enumerate(new_data): + for col_number, value in enumerate(line): + if value == '#': + galaxies.append((row_number, col_number)) +pairs = set([frozenset([galaxy_1, galaxy_2]) for galaxy_1 in galaxies for galaxy_2 in galaxies if galaxy_1 != galaxy_2]) +distances = [] +for galaxy_pair in pairs: + pair = list(galaxy_pair) + + x_diff = abs(pair[0][0] - pair[1][0]) + y_diff = abs(pair[0][1] - pair[1][1]) + distances.append(x_diff + y_diff) +sum(distances) + + +``` + + + + + 9605127 + + + + +```python +data = open('data/puzzle_11.txt', 'r').readlines() +data = [re.sub('\n', '', line) for line in data] +galaxies = [] +for row_number, line in enumerate(data): + for col_number, value in enumerate(line): + if value == '#': + galaxies.append((row_number, col_number)) + +expanded_rows = [i for i, line in enumerate(data) if "#" not in line] +expanded_cols = [i for i in range(len(data[0])) if '#' not in [row[i] for row in data]] + +pairs = set([frozenset([galaxy_1, galaxy_2]) for galaxy_1 in galaxies for galaxy_2 in galaxies if galaxy_1 != galaxy_2]) +distances = [] +for galaxy_pair in pairs: + pair = list(galaxy_pair) + x1, y1 = pair[0] + x2, y2 = pair[1] + x_diff = abs(x1-x2) + y_diff = abs(y1-y2) + + for expanded_row in expanded_rows: + if x2 < expanded_row < x1: + x_diff += 999999 + if x1 < expanded_row < x2: + x_diff += 999999 + for expanded_col in expanded_cols: + if y1 < expanded_col < y2: + y_diff += 999999 + if y2 < expanded_col < y1: + y_diff += 999999 + + + + distances.append(x_diff + y_diff) +sum(distances) +``` + + + + + 458191688761 + +