File tree Expand file tree Collapse file tree 1 file changed +12
-25
lines changed Expand file tree Collapse file tree 1 file changed +12
-25
lines changed Original file line number Diff line number Diff line change
1
+ function isSafe ( line ) {
2
+ const result = line . map ( ( num , i ) => i > 0 && num - line [ i - 1 ] ) . slice ( 1 ) ;
3
+ return (
4
+ result . every ( num => num >= 1 && num <= 3 ) ||
5
+ result . every ( num => num <= - 1 && num >= - 3 )
6
+ ) ;
7
+ }
8
+
1
9
export function part1 ( input ) {
2
10
const lines = input . split ( "\n" ) . map ( line => line . split ( " " ) . map ( Number ) ) ;
3
- const safe = lines . filter ( line => {
4
- const result = line
5
- . map ( ( num , i ) => ( i === 0 ? 0 : num - line [ i - 1 ] ) )
6
- . slice ( 1 ) ;
7
- return (
8
- result . every ( num => num >= 1 && num <= 3 ) ||
9
- result . every ( num => num <= - 1 && num >= - 3 )
10
- ) ;
11
- } ) ;
12
- return safe . length ;
11
+ return lines . filter ( isSafe ) . length ;
13
12
}
14
13
15
14
export function part2 ( input ) {
16
15
const lines = input . split ( "\n" ) . map ( line => line . split ( " " ) . map ( Number ) ) ;
17
- const safe = lines . filter ( line => {
18
- for ( let i = 0 ; i < line . length ; i ++ ) {
19
- const newLine = line . slice ( ) ;
20
- newLine . splice ( i , 1 ) ;
21
- const result = newLine
22
- . map ( ( num , i ) => ( i === 0 ? 0 : num - newLine [ i - 1 ] ) )
23
- . slice ( 1 ) ;
24
- if (
25
- result . every ( num => num >= 1 && num <= 3 ) ||
26
- result . every ( num => num <= - 1 && num >= - 3 )
27
- )
28
- return true ;
29
- }
30
- } ) ;
31
- return safe . length ;
16
+ return lines . filter ( line => {
17
+ return line . map ( ( x , i ) => line . toSpliced ( i , 1 ) ) . find ( isSafe ) ;
18
+ } ) . length ;
32
19
}
You can’t perform that action at this time.
0 commit comments