[TASK] Solved Day 2 Part 1

This commit is contained in:
2021-12-02 09:41:43 +01:00
parent e710494170
commit c8b506f16e
5 changed files with 1059 additions and 0 deletions

31
functions/src/day2.ts Normal file
View File

@@ -0,0 +1,31 @@
import Utils from "./utils";
class Day2 {
static part1(input: string[]): number {
const forwardMoves = input.filter(s => s.startsWith("forward"))
.map(s => this.readUnits(s));
const finalForwardPosition = Utils.sum(forwardMoves);
const depthMovesUp = input.filter(s => s.startsWith("up"))
.map(s => this.readUnits(s));
const depthMovesDown = input.filter(s => s.startsWith("down"))
.map(s => this.readUnits(s));
const finalDepthPosition = Utils.sum(depthMovesDown) - Utils.sum(depthMovesUp);
return finalForwardPosition * finalDepthPosition;
}
static part2(input: string[]): number {
// TODO implement
return 0;
}
private static readUnits(input: string): number {
return parseInt(input.substr(input.indexOf(' ') + 1));
}
}
export default Day2;

View File

@@ -2,6 +2,7 @@ import * as functions from "firebase-functions";
import Utils from "./utils";
import Day1 from "./day1";
import {Response} from "firebase-functions";
import Day2 from "./day2";
// // Start writing Firebase Functions
@@ -23,7 +24,14 @@ export const day = {
const input = Utils.parseInput(request);
const part1 = Day1.part1(input);
const part2 = Day1.part2(input);
sendResponse(response, part1, part2);
}),
2: functions.region("europe-west1").https.onRequest((request, response) => {
const input = Utils.parseInput(request);
const part1 = Day2.part1(input);
const part2 = Day2.part2(input);
sendResponse(response, part1, part2);
}),

View File

@@ -12,6 +12,10 @@ class Utils {
throw Error("Invalid request");
}
}
static sum(values: number[]): number {
return values.reduce((a, b) => a + b, 0);
}
}
export default Utils;

11
input/day/2-example.http Normal file
View File

@@ -0,0 +1,11 @@
POST http://localhost:5001/advent-of-code-2021-911a8/europe-west1/day-2
Content-Type: text/plain
forward 5
down 5
forward 8
up 3
down 8
forward 2
###

1005
input/day/2.http Normal file

File diff suppressed because it is too large Load Diff