mirror of
https://github.com/fredrikr79/advent_of_code.git
synced 2026-01-12 04:13:06 +01:00
solve 2016/1 part 1 in uiua
This commit is contained in:
24
2016/1/main.ua
Normal file
24
2016/1/main.ua
Normal file
@@ -0,0 +1,24 @@
|
||||
# aoc 2016/1
|
||||
&fras $ input.txt
|
||||
°/$"_, _" ⍜⇌↘₁
|
||||
∧◇(⍥\+⋕ ⍣(
|
||||
⍩⊙⍜⊢(×i) °(⊂@L)
|
||||
| ⍩⊙⍜⊢(ׯi) °(⊂@R))
|
||||
)⊙i_0
|
||||
⌵+°ℂ⊣
|
||||
$Part₁
|
||||
# the idea is to represent our position
|
||||
# as a complex number (2d vector). rotate by
|
||||
# 90 or -90 degrees when you encounter L or R
|
||||
# by multiplying by i or -i on the direction
|
||||
# vector.
|
||||
# this can be done by folding with the initial
|
||||
# values i (direction) and 0 (position), pattern-
|
||||
# matching the next token on L or R and recognizing
|
||||
# them by ⍩.
|
||||
# once the direction vector has been rotated
|
||||
# accordingly, ⍥\+⋕ to add the direction unit vector
|
||||
# to the position vector n times for token Ln or Rn.
|
||||
#
|
||||
# we can see many awesome pieces of functional and
|
||||
# array oriented code!
|
||||
Reference in New Issue
Block a user