Florian Bouillon 1060cb8a09
Added the four first days of 2015
Yes i'm gonna do them all !

Signed-off-by: Avior <github@avior.me>
2021-12-07 17:03:46 +01:00

49 lines
789 B
TypeScript

import fs from 'fs'
const input = fs.readFileSync(__dirname + '/input.txt').toString()
.split('') as Array<'<' | '>' | 'v' | '^'>
const poses: Array<`${number}:${number}`> = ['0:0']
let x = 0
let y = 0
let roboX = 0
let roboY = 0
for (let i = 0; i < input.length; i++) {
const direction = input[i]
let xChange = 0
let yChange = 0
switch (direction) {
case '>':
xChange++
break;
case '<':
xChange--
break;
case '^':
yChange--
break;
case 'v':
yChange++
break;
}
let v: `${number}:${number}`
if (i % 2 === 0) { // santa
x += xChange
y += yChange
v = `${x}:${y}`
} else { // roboSanta
roboX += xChange
roboY += yChange
v = `${roboX}:${roboY}`
}
if (!poses.includes(v)) {
poses.push(v)
}
}
console.log(
"Result:", poses.length
)