complete day 1
This commit is contained in:
		
						commit
						e709c369c5
					
				
					 2 changed files with 46 additions and 0 deletions
				
			
		
							
								
								
									
										22
									
								
								01-a.kts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								01-a.kts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,22 @@ | |||
| import java.util.Scanner | ||||
| import kotlin.math.abs | ||||
| 
 | ||||
| val scanner = Scanner(System.`in`) | ||||
| 
 | ||||
| val listLeft = ArrayList<Int>() | ||||
| val listRight = ArrayList<Int>() | ||||
| 
 | ||||
| while (scanner.hasNextInt()) { | ||||
|     val num1 = scanner.nextInt() | ||||
|     listLeft.add(num1) | ||||
| 
 | ||||
|     val num2 = scanner.nextInt() | ||||
|     listRight.add(num2) | ||||
| } | ||||
| 
 | ||||
| val pairs = listLeft.sorted() zip listRight.sorted() | ||||
| 
 | ||||
| val result = pairs.fold(0) { acc, (l, r) -> acc + abs(l - r) } | ||||
| 
 | ||||
| println(result) | ||||
| 
 | ||||
							
								
								
									
										24
									
								
								01-b.kts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								01-b.kts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| import java.util.Scanner | ||||
| 
 | ||||
| val scanner = Scanner(System.`in`) | ||||
| 
 | ||||
| val listLeft = ArrayList<Int>() | ||||
| val listRight = ArrayList<Int>() | ||||
| 
 | ||||
| while (scanner.hasNextInt()) { | ||||
|     val num1 = scanner.nextInt() | ||||
|     listLeft.add(num1) | ||||
| 
 | ||||
|     val num2 = scanner.nextInt() | ||||
|     listRight.add(num2) | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| val rightFrequencies = listRight.groupingBy { it }.eachCount() | ||||
| 
 | ||||
| val sum = listLeft.fold(0, { sum, left -> | ||||
|     sum + left * (rightFrequencies[left] ?: 0) | ||||
| }) | ||||
| 
 | ||||
| println(sum) | ||||
| 
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue