[TASK] Finished Day 1

This commit is contained in:
2021-12-01 23:57:22 +01:00
parent 0d3991428f
commit e710494170
4 changed files with 24 additions and 11 deletions

View File

@@ -9,7 +9,7 @@ module.exports = {
"plugin:import/errors", "plugin:import/errors",
"plugin:import/warnings", "plugin:import/warnings",
"plugin:import/typescript", "plugin:import/typescript",
"google", // "google",
"plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended",
], ],
parser: "@typescript-eslint/parser", parser: "@typescript-eslint/parser",

View File

@@ -9,6 +9,20 @@ class Day1 {
} }
return res; return res;
} }
static part2(input: string[]): number {
const values = input.map(s => parseInt(s));
let res = 0;
let previousSum = Math.max(...values) * 3;
for (let i = 2; i < values.length; i++) {
const sum = values[i - 2] + values[i - 1] + values[i];
if (sum > previousSum) res++;
previousSum = sum;
}
return res;
}
} }
export default Day1; export default Day1;

View File

@@ -13,22 +13,23 @@ import {Response} from "firebase-functions";
// }); // });
interface DayResult { interface DayResult {
part1: any; part1: string | number;
part2: any; part2: string | number;
} }
export const day = { export const day = {
1: functions.region('europe-west1').https.onRequest((request, response) => { 1: functions.region("europe-west1").https.onRequest((request, response) => {
const input = Utils.parseInput(request); const input = Utils.parseInput(request);
const part1 = Day1.part1(input); const part1 = Day1.part1(input);
const part2 = Day1.part2(input);
sendResponse(response, part1, 0); sendResponse(response, part1, part2);
}), }),
} }
function sendResponse(response: Response, part1: any, part2: any) { function sendResponse(response: Response, part1: string | number, part2: string | number) {
const res: DayResult = { part1, part2 }; const res: DayResult = { part1, part2 };
response.send(res); response.send(res);

View File

@@ -1,18 +1,16 @@
import {Request} from "firebase-functions/lib/common/providers/https"; import { Request } from "firebase-functions";
class Utils { class Utils {
static parseInput(request: Request): string[] { static parseInput(request: Request): string[] {
const body = request.body; const body = request.body;
if (typeof body === 'string') { if (typeof body === "string") {
return body.split('\n'); return body.split("\n");
} else if (body.constructor === Array) { } else if (body.constructor === Array) {
return body; return body;
} else { } else {
throw Error("Invalid request"); throw Error("Invalid request");
} }
} }
} }