✨ Finit le jour 7
This commit is contained in:
		
							
								
								
									
										22
									
								
								day_7/part_1.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								day_7/part_1.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| <?php | ||||
|  | ||||
| $positions = array_map('intval', explode(',', file_get_contents('./input.txt'))); | ||||
|  | ||||
| $min = min($positions); | ||||
| $max = max($positions); | ||||
|  | ||||
| $lowest_fuel = $max * count($positions); | ||||
| $best_position = 0; | ||||
|  | ||||
| for ($i = $min; $i <= $max; $i++) { | ||||
|     $fuel_used = 0; | ||||
|     foreach ($positions as $position) { | ||||
|         $fuel_used += abs($position - $i); | ||||
|     } | ||||
|     if ($lowest_fuel > $fuel_used) { | ||||
|         $lowest_fuel = $fuel_used; | ||||
|         $best_position = $i; | ||||
|     } | ||||
| } | ||||
|  | ||||
| echo sprintf('Best position is %u with %u fuel used.', $best_position, $lowest_fuel); | ||||
							
								
								
									
										22
									
								
								day_7/part_2.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								day_7/part_2.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| <?php | ||||
|  | ||||
| $positions = array_map('intval', explode(',', file_get_contents('./input.txt'))); | ||||
|  | ||||
| $min = min($positions); | ||||
| $max = max($positions); | ||||
|  | ||||
| $lowest_fuel = $max * array_sum(range(1, $max)); | ||||
| $best_position = 0; | ||||
|  | ||||
| for ($i = $min; $i <= $max; $i++) { | ||||
|     $fuel_used = 0; | ||||
|     foreach ($positions as $position) { | ||||
|         $fuel_used += array_sum(range(1, abs($position - $i))); | ||||
|     } | ||||
|     if ($lowest_fuel > $fuel_used) { | ||||
|         $lowest_fuel = $fuel_used; | ||||
|         $best_position = $i; | ||||
|     } | ||||
| } | ||||
|  | ||||
| echo sprintf('Best position is %u with %u fuel used.', $best_position, $lowest_fuel); | ||||
		Reference in New Issue
	
	Block a user