diff options
Diffstat (limited to 'day1')
| -rw-r--r-- | day1/index.ts | 17 |
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; |
