Files
advent-of-code-2022/2022/06/solution.ts
2022-12-06 15:13:37 +01:00

51 lines
1.6 KiB
TypeScript

const sample1 = "mjqjpqmgbljsphdztnvjfqwrcgsmlb";
const sample2 = "bvwbjplbgvbhsrlpgdmjqwftvncz";
const sample3 = "nppdvjthqldpwncqszvftbrmjlhg";
const sample4 = "nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg";
const sample5 = "zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw";
const input = await Deno.readTextFile("input.txt");
const solvePart1 = (data: string): number => {
const characters = data.split("");
const size = 4;
for (let i = 0; i < characters.length; i += 1) {
const s = new Set(characters.slice(i, i + size));
if (s.size === size) {
return s.size + i;
}
}
return -1;
};
console.log("Sample1:", solvePart1(sample1));
console.log("Sample2:", solvePart1(sample2));
console.log("Sample3:", solvePart1(sample3));
console.log("Sample4:", solvePart1(sample4));
console.log("Sample5:", solvePart1(sample5));
console.log("Input", solvePart1(input));
const sample6 = "mjqjpqmgbljsphdztnvjfqwrcgsmlb";
const sample7 = "bvwbjplbgvbhsrlpgdmjqwftvncz";
const sample8 = "nppdvjthqldpwncqszvftbrmjlhg";
const sample9 = "nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg";
const sample10 = "zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw";
const solvePart2 = (data: string): number => {
const characters = data.split("");
const size = 14;
for (let i = 0; i < characters.length; i += 1) {
const s = new Set(characters.slice(i, i + size));
if (s.size === size) {
return s.size + i;
}
}
return -1;
};
console.log("Sample6:", solvePart2(sample6));
console.log("Sample7:", solvePart2(sample7));
console.log("Sample8:", solvePart2(sample8));
console.log("Sample9:", solvePart2(sample9));
console.log("Sample10:", solvePart2(sample10));
console.log("Input", solvePart2(input));