25 lines
616 B
JavaScript
25 lines
616 B
JavaScript
import fs from "node:fs";
|
|
const lines = fs.readFileSync("input.txt", "utf-8").split("\n");
|
|
let result = 0;
|
|
|
|
lines.forEach((line) => {
|
|
result += countCardPoints(line);
|
|
});
|
|
|
|
console.log(result);
|
|
|
|
function countCardPoints(line) {
|
|
const lists = line.split(":")[1].trim().split("|");
|
|
|
|
const [winningNumbers, myNumbers] = lists.map(
|
|
(item) => item.match(/\d+/g)?.map(Number) || []
|
|
);
|
|
|
|
const commonItems = myNumbers.filter((item) => winningNumbers.includes(item));
|
|
|
|
let output = 0;
|
|
if (commonItems.length > 0) {
|
|
output += 2 ** (commonItems.length - 1);
|
|
}
|
|
return output;
|
|
} |