From bf804c482ca9608fe34de9f2c714cd57a920f6b9 Mon Sep 17 00:00:00 2001 From: Aelita4 Date: Tue, 6 Dec 2022 17:14:03 +0100 Subject: [PATCH] 06_2 --- day06/index.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/day06/index.js b/day06/index.js index 9dce2ac..b8c8f43 100644 --- a/day06/index.js +++ b/day06/index.js @@ -2,26 +2,33 @@ import { readFileSync } from "fs"; const input = readFileSync("datastream.txt", "utf-8"); -function checkForDuplicates(arr) { +function checkForDuplicates(arr, howMany) { const map = new Map(); arr.forEach(char => { map.set(char, true); }); - return map.size === 4; + return map.size === howMany; } -const arr = ['', '', '', '']; -let i = 1; +const arr1 = new Array(4).fill(''); +const arr2 = new Array(14).fill(''); +let i = 1, startOfPacket = 0, startOfMessage = 0; + +console.log(arr1) for(const char of input) { - arr.shift() - arr.push(char); + arr1.shift() + arr1.push(char); + + arr2.shift() + arr2.push(char); - if(i > 4 && checkForDuplicates(arr)) break; + if(startOfPacket === 0 && i > 4 && checkForDuplicates(arr1, 4)) startOfPacket = i; + if(startOfMessage === 0 && i > 14 && checkForDuplicates(arr2, 14)) startOfMessage = i; i++; } -console.log(i); \ No newline at end of file +console.log(startOfPacket, startOfMessage); \ No newline at end of file