This commit is contained in:
BasGremmen 2023-12-11 13:07:29 +01:00
parent ad2f6b05f7
commit 48ee934ca8
2 changed files with 233 additions and 1 deletions

View File

@ -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": {

View File

@ -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