advent-of-code

Entries to advent of code, multiple years
git clone git://git.finwo.net/misc/advent-of-code
Log | Files | Refs

commit 8e9a847d8011e9e88ddf339fb35968a699bf4e78
parent accbe7c113bbb5f30fd9630cc1a02d5233fc204f
Author: finwo <finwo@pm.me>
Date:   Tue, 15 Nov 2022 12:03:59 +0100

Added solution for 2015/01

Diffstat:
M.gitignore | 1+
A2015/day-01/index.js | 39+++++++++++++++++++++++++++++++++++++++
A2015/package-lock.json | 28++++++++++++++++++++++++++++
A2015/package.json | 14++++++++++++++
4 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -1,2 +1,3 @@ dist/ node_modules/ +input diff --git a/2015/day-01/index.js b/2015/day-01/index.js @@ -0,0 +1,39 @@ +const fs = require('fs'); +const pipe = require('upipe'); + +let floor = 0; +let visitedBasement = false; +let ccount = 0; + +const handler = pipe(); +handler.on('end', () => { + console.log(`Santa ends up on floor ${floor}`); +}); +handler.on('data', c => { + switch(c) { + case '(': + floor++; + break; + case ')': + floor--; + break; + } + + ccount++; + + if (floor < 0 && !visitedBasement) { + visitedBasement = true; + console.log(`First entered the basement at instruction ${ccount}`); + } +}); + + +fs.open('input', 'r', (err, fd) => { + if (err) throw err; + const buff = Buffer.alloc(1); + while(true) { + const c = fs.readSync(fd, buff, 0, 1, null); + if (c == 0) { handler.end(); break; }; + handler.write(buff.toString()); + } +}); diff --git a/2015/package-lock.json b/2015/package-lock.json @@ -0,0 +1,28 @@ +{ + "name": "2015", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "2015", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "upipe": "^0.1.3" + } + }, + "node_modules/upipe": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/upipe/-/upipe-0.1.3.tgz", + "integrity": "sha512-9lLwD8qIpKhXxbWv3TqTsHp0KkrentGyEEQdoOOdoPHlcTDWsXeZg0dG38E+oqQDyNLZFDQ41J+TyHmmEgqxjQ==" + } + }, + "dependencies": { + "upipe": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/upipe/-/upipe-0.1.3.tgz", + "integrity": "sha512-9lLwD8qIpKhXxbWv3TqTsHp0KkrentGyEEQdoOOdoPHlcTDWsXeZg0dG38E+oqQDyNLZFDQ41J+TyHmmEgqxjQ==" + } + } +} diff --git a/2015/package.json b/2015/package.json @@ -0,0 +1,14 @@ +{ + "name": "2015", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "upipe": "^0.1.3" + } +}