commit 8e9a847d8011e9e88ddf339fb35968a699bf4e78
parent accbe7c113bbb5f30fd9630cc1a02d5233fc204f
Author: finwo <finwo@pm.me>
Date: Tue, 15 Nov 2022 12:03:59 +0100
Added solution for 2015/01
Diffstat:
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"
+ }
+}