File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import solve from "./solve.ts" ;
2+
3+ import { assertEquals } from "@std/assert" ;
4+
5+ Deno . test ( "example" , ( ) => {
6+ const input = `\
7+ 987654321111111
8+ 811111111111119
9+ 234234234234278
10+ 818181911112111` ;
11+
12+ assertEquals ( solve ( input ) , 357 ) ;
13+ } ) ;
Original file line number Diff line number Diff line change 1+ export default function solve ( input : string ) {
2+ const banks = input . split ( "\n" ) . map ( ( line ) => Array . from ( line , Number ) ) ;
3+ let sum = 0 ;
4+ for ( const bank of banks ) {
5+ const max = Math . max ( ...bank . slice ( 0 , - 1 ) ) ;
6+ const indexOfMax = bank . findIndex ( ( value ) => value === max ) ;
7+ sum += max * 10 + Math . max ( ...bank . slice ( indexOfMax + 1 ) ) ;
8+ }
9+ return sum ;
10+ }
Original file line number Diff line number Diff line change 1+ import solve from "./solve.ts" ;
2+
3+ import { assertEquals } from "@std/assert" ;
4+
5+ Deno . test ( "example" , ( ) => {
6+ const input = `\
7+ 987654321111111
8+ 811111111111119
9+ 234234234234278
10+ 818181911112111` ;
11+
12+ assertEquals ( solve ( input ) , 3121910778619 ) ;
13+ } ) ;
Original file line number Diff line number Diff line change 1+ export default function solve ( input : string ) {
2+ const banks = input . split ( "\n" ) . map ( ( line ) => Array . from ( line , Number ) ) ;
3+ let sum = 0 ;
4+ for ( let bank of banks ) {
5+ const digits = [ Math . max ( ...bank . slice ( 0 , - 11 ) ) ] ;
6+ while ( digits . length < 12 ) {
7+ bank = bank . slice ( bank . indexOf ( digits [ digits . length - 1 ] ) + 1 ) ;
8+ digits . push ( Math . max ( ...bank . slice ( 0 , bank . length - 11 + digits . length ) ) ) ;
9+ }
10+ sum += + digits . join ( "" ) ;
11+ }
12+ return sum ;
13+ }
You can’t perform that action at this time.
0 commit comments