Advent of Code 2022

Artifact [e19b9bf52f]
Login

Artifact e19b9bf52f79e6517aacc2a698b70d1a224566fd406ed07d5c44b93de8811234:


import { CharColl, Collection } from "util/collection";

// If blank strings/ints is not enough
export const inputMapper = (inputs: string) => inputs;

export function solution1(inputs: Collection<string>): number {
  const flat: Collection<string> = CharColl(inputs[0]);

  for (let i = 4; i < flat.length; i++) {
    const distinct = new Set(flat.slice(i - 4, i)).size;

    if (distinct === 4) {
      return i;
    }
  }

  return 0;
}

export function solution2(inputs: Collection<string>): number {
  const flat: Collection<string> = CharColl(inputs[0]);

  for (let i = 14; i < flat.length; i++) {
    const distinct = new Set(flat.slice(i - 14, i)).size;

    if (distinct === 14) {
      return i;
    }
  }

  return 0;
}