diff options
Diffstat (limited to 'challenge-336/roger-bell-west/javascript/ch-2.js')
| -rwxr-xr-x | challenge-336/roger-bell-west/javascript/ch-2.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/challenge-336/roger-bell-west/javascript/ch-2.js b/challenge-336/roger-bell-west/javascript/ch-2.js new file mode 100755 index 0000000000..c5b57475ee --- /dev/null +++ b/challenge-336/roger-bell-west/javascript/ch-2.js @@ -0,0 +1,54 @@ +#! /usr/bin/node + +"use strict" + +function finalscore(a) { + let p = []; + for (let n of a) { + switch (n) { + case 'C': + p.pop(); + break; + case 'D': + p.push(2 * p.at(-1)); + break; + case '+': + p.push(p.at(-2) + p.at(-1)); + break; + default: + p.push(parseInt(n)); + } + } + return p.reduce((x, y) => x + y) +} + +if (finalscore(['5', '2', 'C', 'D', '+']) == 30) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (finalscore(['5', '-2', '4', 'C', 'D', '9', '+', '+']) == 27) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (finalscore(['7', 'D', 'D', 'C', '+', '3']) == 45) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (finalscore(['-5', '-10', '+', 'D', 'C', '+']) == -55) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (finalscore(['3', '6', '+', 'D', 'C', '8', '+', 'D', '-2', 'C', '+']) == 128) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write("\n"); |
