From b4dcb59a8ace92d2a4343ad41a9230b727b1b850 Mon Sep 17 00:00:00 2001 From: j-james Date: Tue, 12 Jan 2021 16:18:06 -0800 Subject: Day Fifteen --- 2020/fifteen.nim | 20 ++++++++++++++++++++ 2020/input/fifteen.txt | 1 + 2 files changed, 21 insertions(+) create mode 100644 2020/fifteen.nim create mode 100644 2020/input/fifteen.txt (limited to '2020') diff --git a/2020/fifteen.nim b/2020/fifteen.nim new file mode 100644 index 0000000..0086054 --- /dev/null +++ b/2020/fifteen.nim @@ -0,0 +1,20 @@ +# Day Fifteen: Rambunctious Recitation +import os, strutils, sequtils + +let input: string = paramStr(1) + +proc recite(nth: int): int = + var numbers: seq[int] = map(split(strip(readFile(input)), ","), parseInt) + var history: seq[int] = newSeqWith[int](nth, -1) + for i in 0 .. nth - 2: + let previous: int = numbers[i] + if i == len(numbers) - 1: + if history[previous] != -1: + numbers.add(i - history[previous]) + else: + numbers.add(0) + history[previous] = i + return numbers[^1] + +echo recite(2020) +echo recite(30000000) diff --git a/2020/input/fifteen.txt b/2020/input/fifteen.txt new file mode 100644 index 0000000..ef94aa4 --- /dev/null +++ b/2020/input/fifteen.txt @@ -0,0 +1 @@ +20,0,1,11,6,3 -- cgit v1.2.3-70-g09d2