Files
advent-of-code-2022/day_06/solve.nim
2022-12-18 19:04:47 +01:00

25 lines
711 B
Nim

import std/[sequtils]
const input = readFile("day_06/input.txt")
proc isMarker(segment: string): bool {.inline.} =
segment.deduplicate == segment
proc findMarkerIndex(data: string, markerSize: int): int =
let offset = markerSize - 1
for i in offset..input.len-1:
if input[i-offset..i].isMarker:
return i
# How many characters need to be processed before the first start-of-packet marker is detected?
proc solvePart1() =
echo "Marker: " & $(input.findMarkerIndex(4) + 1)
# How many characters need to be processed before the first start-of-message marker is detected?
proc solvePart2() =
echo "Marker: " & $(input.findMarkerIndex(14) + 1)
if isMainModule:
solvePart1()
solvePart2()