Not everything done
This commit is contained in:
commit
2773df212e
16 changed files with 8761 additions and 0 deletions
123
aoc4.ipynb
Normal file
123
aoc4.ipynb
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "298d175e-fe20-4d97-8d3c-5b77b045a33a",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Part 1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 18,
|
||||
"id": "aed8a1d4-93f0-4bb8-9810-a20b1113ff1f",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def range_contains_range(range1, range2):\n",
|
||||
" return range1.start in range2 and range1.stop in range2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 29,
|
||||
"id": "2385899f-2a65-467e-8abf-2d7fa90aba84",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"532"
|
||||
]
|
||||
},
|
||||
"execution_count": 29,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"with open(\"aoc4_input.txt\", \"r\") as f:\n",
|
||||
" fully_contains_count = 0\n",
|
||||
" for assignment_pair in f:\n",
|
||||
" match list(map(lambda x: list(map(int, x.split(\"-\"))), assignment_pair.strip().split(\",\"))):\n",
|
||||
" case [[fa1, fa2], [sa1, sa2]]:\n",
|
||||
" r1, r2 = range(fa1, fa2), range(sa1, sa2)\n",
|
||||
" c = int(range_contains_range(r1, range(sa1, sa2+1)) or range_contains_range(r2, range(fa1, fa2+1)))\n",
|
||||
" fully_contains_count += c\n",
|
||||
"\n",
|
||||
"fully_contains_count"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "5886c69c-229a-45f6-b31e-556b55b1bbec",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Part 2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 30,
|
||||
"id": "c567162f-8ef0-47c1-ba17-84bf667b3496",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def range_overlap_range(range1, range2):\n",
|
||||
" return range1.start in range2 or range1.stop in range2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 31,
|
||||
"id": "f3142767-65a1-4bf0-a64d-83ef53711e20",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"854"
|
||||
]
|
||||
},
|
||||
"execution_count": 31,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"with open(\"aoc4_input.txt\", \"r\") as f:\n",
|
||||
" overlapping_ranges_count = 0\n",
|
||||
" for assignment_pair in f:\n",
|
||||
" match list(map(lambda x: list(map(int, x.split(\"-\"))), assignment_pair.strip().split(\",\"))):\n",
|
||||
" case [[fa1, fa2], [sa1, sa2]]:\n",
|
||||
" r1, r2 = range(fa1, fa2), range(sa1, sa2)\n",
|
||||
" c = int(range_overlap_range(r1, range(sa1, sa2+1)) or range_overlap_range(r2, range(fa1, fa2+1)))\n",
|
||||
" overlapping_ranges_count += c\n",
|
||||
"\n",
|
||||
"overlapping_ranges_count"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.10.7"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue