expeditaet
Version:
Advent of Code Solutions
29 lines (27 loc) • 738 B
text/typescript
export interface Card {
id: number;
winningNumbers: number[];
pulledNumbers: number[];
rewardCards: Card[];
count: number;
}
export const parse = (line: string): Card => {
const [rawCardId, numbers] = line.splitIntoStringPair(': ');
const [, idString] = rawCardId.splitIntoStringPair(/ +/);
const [rawWinningNumbers, rawPulledNumbers] = numbers.splitIntoStringPair(' | ');
const winningNumbers = rawWinningNumbers
.split(/ +/g)
.filter((l) => !!l)
.map((n) => Number.parseInt(n, 10));
const pulledNumbers = rawPulledNumbers
.split(/ +/g)
.filter((l) => !!l)
.map((n) => Number.parseInt(n, 10));
return {
winningNumbers,
id: Number.parseInt(idString, 10),
pulledNumbers,
rewardCards: [],
count: 1,
};
};