Skip to content

Commit 3518a8b

Browse files
committed
Day 4 refactor
1 parent dfe161e commit 3518a8b

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

2023/Day04/index.js

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import input from './input.js';
22

3-
const cards = input.split('\n');
4-
53
// Process cards to get winning numbers and my numbers
64
const cleanedCardData = cards.map(card => {
75
const [, cardData] = card.split(': ');
@@ -12,8 +10,12 @@ const cleanedCardData = cards.map(card => {
1210
// Calculate total points based on matching numbers
1311
let totalPoints = 0;
1412

13+
const getMatchingNumbers = (winningNumbers, myNumbers) => {
14+
return myNumbers.split(' ').filter(number => winningNumbers.split(' ').includes(number));
15+
}
16+
1517
cleanedCardData.forEach(({ winningNumbers, myNumbers }) => {
16-
const matchingNumbers = myNumbers.split(' ').filter(number => winningNumbers.split(' ').includes(number));
18+
const matchingNumbers = getMatchingNumbers(winningNumbers, myNumbers);
1719

1820
if (matchingNumbers.length > 0) {
1921
const points = Math.pow(2, matchingNumbers.length - 1);
@@ -23,17 +25,13 @@ cleanedCardData.forEach(({ winningNumbers, myNumbers }) => {
2325

2426
console.log(`Total points: ${totalPoints}`);
2527

26-
/* ----- Part Two ----- */
28+
/* Part Two */
2729

2830
let amountOfCardsArray = Array(cards.length).fill(1);
2931

3032
for (let i = 0; i < cards.length; i++) {
3133
const { winningNumbers, myNumbers } = cleanedCardData[i];
32-
33-
const winningNumbersSet = new Set(winningNumbers.split(' '));
34-
const myNumbersSet = new Set(myNumbers.split(' '));
35-
36-
const numberOfMatches = [...myNumbersSet].filter(num => winningNumbersSet.has(num)).length;
34+
const numberOfMatches = getMatchingNumbers(winningNumbers, myNumbers).length
3735

3836
for (let x = 1; x <= numberOfMatches; x++) {
3937
amountOfCardsArray[i + x] += amountOfCardsArray[i];

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy