File tree Expand file tree Collapse file tree 1 file changed +14
-4
lines changed Expand file tree Collapse file tree 1 file changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -7,14 +7,24 @@ import { createInterface } from 'readline';
7
7
function processInput ( input : string ) {
8
8
const rl = createInterface ( createReadStream ( input ) ) ;
9
9
10
- let lastValue : number | undefined = undefined ;
10
+ const windowSize = 3 ;
11
+ const window : number [ ] = [ ] ;
11
12
let increases : number = 0 ;
12
13
rl . on ( 'line' , line => {
13
14
const value = Number ( line ) ;
14
- if ( lastValue && value > lastValue ) {
15
- increases ++ ;
15
+ let lastSum ;
16
+ if ( window . length === windowSize ) {
17
+ lastSum = window . reduce ( ( s , v ) => s + v , 0 ) ;
18
+ window . splice ( 0 , 1 ) ;
19
+ }
20
+ window . push ( value ) ;
21
+ if ( typeof lastSum !== 'undefined' ) {
22
+ // We removed one, and we added one -- so window.length is still equal to the window size.
23
+ const sum = window . reduce ( ( s , v ) => s + v , 0 ) ;
24
+ if ( sum > lastSum ) {
25
+ increases ++ ;
26
+ }
16
27
}
17
- lastValue = value ;
18
28
} ) ;
19
29
rl . on ( 'close' , ( ) => {
20
30
console . log ( `Results for ${ input } : ${ increases } increases` ) ;
You can’t perform that action at this time.
0 commit comments