From ad8e0fe91fba37e61a913cc6dd67028c26cac373 Mon Sep 17 00:00:00 2001 From: Piotr Russ Date: Fri, 18 Dec 2020 12:35:42 +0100 Subject: day18 --- day18/day18-1.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 day18/day18-1.js (limited to 'day18/day18-1.js') diff --git a/day18/day18-1.js b/day18/day18-1.js new file mode 100644 index 0000000..992da27 --- /dev/null +++ b/day18/day18-1.js @@ -0,0 +1,22 @@ +const data = require('./data') +const lines = data.split(/\n/g).filter(Boolean) + +const ev = (str) => { + let spl = str.split(' ') + while(spl.length > 1) { + spl = [eval(spl.slice(0, 3).join(''))].concat(spl.slice(3)) + } + return spl[0] +} + +const evPar = (str) => { + while(/\(/.test(str)) { + str = str.replace(/\(([^()]+)\)/g, (match, par) => ev(par)) + } + return ev(str) +} + +let sum = 0 +lines.forEach(l => sum += evPar(l)) +console.log('Answer: ', sum) + -- cgit v1.2.3