ryan
360be1a368
modify djikstra to work without a goal
...
if you give None as a goal, then it traverses the entire grid and finds
the shortest path to every node. the distances can then be queried via the
get_info that is passed in as an argument
2023-11-22 16:10:47 -08:00
ryan
ae2acb87fa
refactor generalized djikstra out of day 12
2023-11-22 16:10:47 -08:00
ryan
c7eae53378
doesnt work for 16.2 :(
2023-11-21 23:22:43 -08:00
ryan
b9a36a476a
brute force day 16.1 with incorrect algorithm lol
...
it gets the right answer for the input but not for the example input
2023-11-21 18:17:35 -08:00
ryan
8270ee7aa8
never touching day 15 ever again
2023-11-21 16:50:51 -08:00
ryan
894e83fe12
fix day 15 for example inputs
...
part 1 didn't work for the example input :(
2023-11-21 16:48:03 -08:00
ryan
11546bff5f
fix ocamlformat
...
apparently `version = x` simply refuses to format if you dont have the
specified version. doesn't seem very useful for a repo like this.
2023-11-21 16:47:17 -08:00
ryan
d1e69ba66e
cosmetic refactoring for day 15
2023-11-20 18:57:00 -08:00
ryan
2887274ad9
update the comment in day 15.1
2023-11-20 18:34:44 -08:00
ryan
6758130700
speed up day 15.1 with intersections
...
also update the vec module to use Iter in some places
2023-11-20 18:26:55 -08:00
ryan
ff4bb0ae89
simplify day 15 parsing with regex
2023-11-20 14:26:01 -08:00
ryan
b69f867423
update opam file
2023-11-20 14:25:38 -08:00
ryan
a652ec69da
add memo wrapper for recursive functions
2023-11-20 14:11:04 -08:00
rmanseau
421616a282
add dev env packages to depends
2023-11-20 13:36:40 -08:00
rmanseau
f775ed645b
fix opam file and add install steps to README
2023-11-20 12:24:23 -08:00
ryan
705c9e9a7c
faster 15.2 solution with line intersections :/
2023-11-10 18:24:41 -08:00
ryan
8d97e7601c
very slow solution to day 15 part 2 :)
...
could be sped up by doing math to find intesections points of the
borders but that sounds boring
2023-11-09 14:23:41 -08:00
ryan
b89e9c05ef
refac day 14 to use new Vec2.bounds function
2023-11-08 10:37:44 -08:00
ryan
b90478cd03
solve day 15 part 1 !
2023-11-08 10:37:31 -08:00
ryan
383c6c0fca
add Vec2.iter_region
2023-11-08 10:36:33 -08:00
ryan
19a763b73f
manually implement show & pp for Vec2
...
so that it prints as if it were a tuple
2023-11-08 09:14:22 -08:00
ryan
dcb1338aa3
parse day 15
2023-11-08 09:14:00 -08:00
ryan
724576d120
refactor day 14 a bit
2023-11-01 14:40:16 -07:00
ryan
ceaebf895d
solve day 14!
2023-11-01 14:14:46 -07:00
ryan
ceb0f04a78
implement sand dropping logic & pretty visuals
2023-11-01 12:10:15 -07:00
ryan
c5c9b584c0
update Grid.%() operator to return option
2023-11-01 12:09:53 -07:00
ryan
80f29ae00e
swap Vec2 up/down
...
going down on the grid increases the int for y
2023-11-01 12:08:43 -07:00
ryan
2418d2ff0d
normalize points in input
...
this way i can print the full input in as small a space as possible!
2023-10-31 18:06:12 -07:00
ryan
1ca2a95e1d
make Grid.set_e throw out of bounds errors
2023-10-31 18:05:10 -07:00
ryan
61e3520ede
parse day 14 grid
...
haven't implemented the falling sand yet, but theres a cool expect test
that draws the grid
2023-10-31 17:04:20 -07:00
ryan
98f47654f8
change Vec2 implementation to a record type
2023-10-31 15:57:13 -07:00
ryan
88acb381f1
move Grid into its own file
2023-10-31 15:57:11 -07:00
ryan
1d60878428
add init_grid func
2023-10-31 14:43:12 -07:00
ryan
63bad67c1b
create angstrom wrapper in Utils for int parser
...
and other common parsers for the future
2023-10-31 14:40:22 -07:00
ryan
8fe7e77b52
put packet in a inline module cuz why not
2023-10-31 10:08:20 -07:00
ryan
06f695b34c
tighten up day 13
...
List.compare is neat!
2023-10-31 09:45:04 -07:00
ryan
fa8970b0de
day 13, first parser combinator! thx angstrom <3
2023-10-30 15:37:45 -07:00
ryan
dfa2cf11a1
add Vec2.origin for (0,0)
2023-10-30 11:21:34 -07:00
ryan
8562bc8385
finished day 12, thx dijkstra !!
2023-10-23 19:49:18 -05:00
ryan
887d961d29
flatten array of array in grid implementation
...
makes the new find function much simpler to implement
2023-10-22 11:43:27 -05:00
ryan
31a75867fa
add expect tests
2023-10-09 14:14:13 -07:00
ryan
b6eae27d9d
get rid of executable
...
expect tests will make them kinda pointless
2023-10-09 14:14:06 -07:00
ryan
fe5cd3666f
move grid parse & iter into Vec2
2023-10-09 13:58:53 -07:00
ryan
250d978a38
solve day 11 :)
2023-10-08 19:10:12 -07:00
ryan
c93c273ffd
solve day 10
2023-10-07 12:58:57 -07:00
ryan
bf5d3c1656
clean up vec stuff
2023-10-07 12:58:50 -07:00
ryan
1ee3a5a3c5
solve day 9 :)
2023-10-05 15:56:02 -07:00
ryan
5e1c30637e
move vec2 into a new file & add a pretty printer
...
now it shows up properly in utop !!
2023-10-05 15:55:05 -07:00
ryan
239af2f93b
refactor day 8 a bit
2023-10-01 13:12:36 -07:00
ryan
7d6b43ba93
day 8 complete !
2023-10-01 01:55:36 -07:00