aboutsummaryrefslogtreecommitdiff
path: root/challenge-114
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-05-25 03:33:08 +0200
committerAbigail <abigail@abigail.be>2021-05-25 03:33:08 +0200
commit91985f9df2122f8896cd9758889abe35956f62ac (patch)
treee222d45d05db74262b8f2ccc8ba9c2ffe0a7778c /challenge-114
parentf07ec8a27e066ed44bc7404b31f6bd0716d10fd9 (diff)
downloadperlweeklychallenge-club-91985f9df2122f8896cd9758889abe35956f62ac.tar.gz
perlweeklychallenge-club-91985f9df2122f8896cd9758889abe35956f62ac.tar.bz2
perlweeklychallenge-club-91985f9df2122f8896cd9758889abe35956f62ac.zip
AWK solution for week 114, part 1
Diffstat (limited to 'challenge-114')
-rw-r--r--challenge-114/abigail/README.md1
-rw-r--r--challenge-114/abigail/awk/ch-1.awk39
2 files changed, 40 insertions, 0 deletions
diff --git a/challenge-114/abigail/README.md b/challenge-114/abigail/README.md
index 93eb5e5b18..6d6da56bb8 100644
--- a/challenge-114/abigail/README.md
+++ b/challenge-114/abigail/README.md
@@ -16,6 +16,7 @@ Output: 1001
~~~~
### Solutions
+* [AWK](awk/ch-1.awk)
* [Perl](perl/ch-1.pl)
### Blog
diff --git a/challenge-114/abigail/awk/ch-1.awk b/challenge-114/abigail/awk/ch-1.awk
new file mode 100644
index 0000000000..dcc90a5751
--- /dev/null
+++ b/challenge-114/abigail/awk/ch-1.awk
@@ -0,0 +1,39 @@
+#!/usr/bin/awk
+
+#
+# See ../README.md
+#
+
+#
+# Run as: awk -f ch-1.awk < input-file
+#
+
+function reverse (word, out, i) {
+ for (i = length (word); i > 0; i --) {
+ out = out substr (word, i, 1)
+ }
+ return out
+}
+
+
+
+/^9+$/ {
+ print $1 + 2
+ next
+}
+
+{
+ part1 = substr ($1, 1, int (length ($1) / 2))
+ part2 = substr ($1, 1 + int (length ($1) / 2), length ($1) % 2)
+ part3 = substr ($1, 1 + int (length ($1) / 2) + length ($1) % 2)
+
+ if (reverse(part1) <= part3) {
+ part1 = (part1 part2) + 1
+ if (length (part2)) {
+ part2 = substr (part1, length (part1), 1)
+ part1 = substr (part1, 1, length (part1) - 1)
+ }
+ }
+
+ print part1 part2 reverse(part1)
+}