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+
19export function part1 ( input ) {
210 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 ;
1312}
1413
1514export function part2 ( input ) {
1615 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 ;
3219}
You can’t perform that action at this time.
0 commit comments