This commit is contained in:
2022-12-17 20:09:45 +01:00
parent 949178dd0c
commit cdc79643be
7 changed files with 1049 additions and 2 deletions

31
day_01/solve.nim Normal file
View File

@@ -0,0 +1,31 @@
import std/[strutils, sequtils, sugar, algorithm]
iterator parseElves(data: seq[string]): seq[string] =
var items = newSeq[string]()
for line in data:
if line.isEmptyOrWhitespace:
yield items
items.setLen 0
else:
items.add(line)
const lines = readFile("day_01/day_01_input.txt").splitLines
proc solveMostCalories() =
var mostCalories = 0
for item in parseElves(lines):
mostCalories = max(mostCalories, item.map(it => it.parseInt).foldl(a + b))
echo "Most calories: " & $mostCalories
proc solveTop3() =
var allElves = newSeq[int]()
for inventory in parseElves(lines):
allElves.add(inventory.map(it => it.parseInt).foldl(a + b))
allElves.sort(SortOrder.Descending)
allElves.setLen(3)
let top3Calories = allElves.foldl(a + b)
echo "Top 3 calories: " & $top3Calories
if isMainModule:
solveMostCalories()
solveTop3()