Refactor day 2 awk
This commit is contained in:
parent
2dd93d776e
commit
87551c682f
|
@ -1,15 +1,19 @@
|
||||||
{
|
# There are no scopes, so we just write to `arr` here and use it later.
|
||||||
len = split($1, arr, ",");
|
# Returning the array does not seem to be legal either. Only scalars allowed.
|
||||||
|
function prepareInput(raw) {
|
||||||
|
len = split(raw, arr, ",");
|
||||||
for (i=0; i<=len; i++) {
|
for (i=0; i<=len; i++) {
|
||||||
arr[i-1] = arr[i];
|
arr[i-1] = int(arr[i]);
|
||||||
}
|
}
|
||||||
arr[1] = 12;
|
return len
|
||||||
arr[2] = 2;
|
}
|
||||||
|
|
||||||
|
function process(arr, len) {
|
||||||
for (i=0; i<len; i+=4) {
|
for (i=0; i<len; i+=4) {
|
||||||
cmd = int(arr[i]);
|
cmd = arr[i];
|
||||||
e1 = int(arr[i+1]);
|
e1 = arr[i+1];
|
||||||
e2 = int(arr[i+2]);
|
e2 = arr[i+2];
|
||||||
target = int(arr[i+3]);
|
target = arr[i+3];
|
||||||
if (cmd == 1)
|
if (cmd == 1)
|
||||||
arr[target] = arr[e1] + arr[e2];
|
arr[target] = arr[e1] + arr[e2];
|
||||||
else if (cmd == 2)
|
else if (cmd == 2)
|
||||||
|
@ -19,5 +23,12 @@
|
||||||
else
|
else
|
||||||
print "Error, invalid command";
|
print "Error, invalid command";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
len = prepareInput($1);
|
||||||
|
arr[1] = 12;
|
||||||
|
arr[2] = 2;
|
||||||
|
process(arr, len)
|
||||||
print arr[0]
|
print arr[0]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user