From e64ee9e095e50dcba06c9edf9e43dc9c57f98f8e Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Tue, 1 Dec 2020 13:58:28 +0200 Subject: Solve 1.1 --- day1/index.ts | 17 +++++++++++++++-- index.ts | 7 +++++-- types.d.ts | 2 +- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/day1/index.ts b/day1/index.ts index 2e202ad..93f0ec6 100644 --- a/day1/index.ts +++ b/day1/index.ts @@ -1,7 +1,20 @@ +import { of } from "rxjs"; +import { filter, map } from 'rxjs/operators'; import { ExerciseModuleFunc } from "../types"; -const day1: ExerciseModuleFunc = (input: string) => { - return input; +type Pair = [T, K]; + +const day1: ExerciseModuleFunc = async (input: string) => { + const numbers = input.split("\n").map(line => Number(line)); + const obs = of(...numbers).pipe( + map((number, index) => [number, numbers.slice(index)] as Pair), + map(pair => [pair[0], pair[1].find(elem => pair[0] + elem === 2020)] as Pair), + filter(pair => pair[1] !== undefined), + map(pair => pair[0] * pair[1]), + map(solution => solution.toString()) + ) + + return obs.toPromise(); } export default day1; diff --git a/index.ts b/index.ts index 6574f2d..ad8a47d 100644 --- a/index.ts +++ b/index.ts @@ -11,9 +11,12 @@ const inputText = inputBuffer.toString(); import(modulePath).then(m => { const defaultFunc = m.default as ExerciseModuleFunc; - const result = defaultFunc(inputText); + return defaultFunc(inputText); +}) +.then(result => { console.log("=== RESULT ==="); console.log(result); -}).catch(err => { +}) +.catch(err => { console.error(err); }); diff --git a/types.d.ts b/types.d.ts index bc99a44..e54f71c 100644 --- a/types.d.ts +++ b/types.d.ts @@ -1 +1 @@ -export type ExerciseModuleFunc = (input: string) => string; +export type ExerciseModuleFunc = (input: string) => Promise; -- cgit v1.3