horvathm

Untitled

Dec 16th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const [rds, yds, nds] = require('fs').readFileSync('input', 'utf8').trim().split('\n\n');
  2.  
  3. const rules = rds.split('\n').map(rd => {
  4.     const m = rd.match(/(\w+): (\d+)-(\d+) or (\d+)-(\d+)/);
  5.     return {
  6.         n: m[1],
  7.         r1: [parseInt(m[2], 10), parseInt(m[3], 10)],
  8.         r2: [parseInt(m[4], 10), parseInt(m[5], 10)]
  9.     };
  10. });
  11.  
  12. console.log(rules);
  13.  
  14. const invalid = nds.split('\n').slice(1).map(
  15.     r => r.split(',').map(s => parseInt(s, 10)).filter(n =>
  16.         rules.every(r =>
  17.             (n < r.r1[0] || n > r.r1[1]) &&
  18.             (n < r.r2[0] || n > r.r2[1])
  19.         )
  20.     )
  21. ).flat();
  22.  
  23. const sum = invalid.reduce((p, c) => p + c, 0);
  24.  
  25. console.log(invalid, sum);
  26.  
Advertisement
Add Comment
Please, Sign In to add comment