又是一年一度的 aoc 了,看还没有人水这个链接。
1 个赞
第一題用 APL 写(
Part1: +/2</vec
Part2: +/2</3+/vec
1 个赞
第二題,part1 略,part2 我用 CL
(defun number (s)
(let ((c (aref s (1- (length s)))))
(- (char-int c) 48)))
(with-open-file (o "input.txt" :direction :input)
(let ((aim 0)
(hoz 0)
(dep 0)
line)
(loop while (setf line (read-line o nil nil))
do (case (aref line 0)
(#\d (incf aim (number line)))
(#\u (decf aim (number line)))
(t
(incf hoz (number line))
(incf dep (* aim (number line))))))
(* hoz dep)))
本来以为今天的会比较难就没太在意,结果看了下原来特別简单,本來是可以拿名次的了。
Part 2 的解
⌊/+/(2÷⍨(1∘+×⊢))|(⍳∘(⌈/)∘.-⊢)data
1 个赞