adventofcode/2021/3/first.nim

26 lines
588 B
Nim

import
../../adventofcode,
sequtils,
strutils,
strformat
let input = adventofcode.getInput(2021, 3)
let lines = input.splitLines()
var gammaRateBinary = ""
var epsilonRateBinary = ""
for idx in 0 .. lines[0].high():
let a = lines.countIt(it[idx] == '0')
let b = lines.countIt(it[idx] == '1')
if a > b:
gammaRateBinary.add '0'
epsilonRateBinary.add '1'
else:
gammaRateBinary.add '1'
epsilonRateBinary.add '0'
let gammaRate = gammaRateBinary.parseBinInt()
let epsilonRate = epsilonRateBinary.parseBinInt()
echo fmt"Answer: {gammaRate * epsilonRate}"