From 45b7008afd40538501da1fb894a1f1a605397a43 Mon Sep 17 00:00:00 2001 From: kageru Date: Tue, 3 Dec 2019 09:05:07 +0100 Subject: [PATCH] Add day 3 part 1 in awk --- 2019/03/day3.awk | 59 ++++++++++++++++++++++++++++++++++++++++++++++++ 2019/03/input | 2 ++ 2 files changed, 61 insertions(+) create mode 100644 2019/03/day3.awk create mode 100644 2019/03/input diff --git a/2019/03/day3.awk b/2019/03/day3.awk new file mode 100644 index 0000000..b41b1f6 --- /dev/null +++ b/2019/03/day3.awk @@ -0,0 +1,59 @@ +#!/usr/bin/awk -f + +function direction(raw) { + return substr(raw, 1, 1); +} + +function abs(v) { + return v < 0 ? -v : v +} + +function distance(raw) { + return int(substr(raw, 2)); +} + +function separateCommands(raw) { + return split(raw, arr, ","); +} + +function changePosition(dir) { + if (dir == "L") + x--; + else if (dir == "R") + x++; + else if (dir == "U") + y++; + else + y--; +} + +BEGIN { + closestCollision = 1000000000; +} + +{ + wirenum++; + x = 0; + y = 0; + len = separateCommands($1); + for (i=1; i<=len; i++) { + dir = direction(arr[i]) + dis = distance(arr[i]) + for (j=0; j