aboutsummaryrefslogtreecommitdiffstats
path: root/day1
diff options
context:
space:
mode:
Diffstat (limited to 'day1')
-rw-r--r--day1/index.ts17
1 files changed, 15 insertions, 2 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> = [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<number, number[]>),
+ map(pair => [pair[0], pair[1].find(elem => pair[0] + elem === 2020)] as Pair<number, number | undefined>),
+ filter(pair => pair[1] !== undefined),
+ map(pair => pair[0] * pair[1]),
+ map(solution => solution.toString())
+ )
+
+ return obs.toPromise();
}
export default day1;