Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Advent of Code 2024 Day 1 in PowerShell
- # Faster code.
- # Edit the path to the input text file
- # save as faster.ps1
- # run from powershell
- measure-command {
- $Col1 = [system.collections.generic.list[int]]::new()
- $Col2 = [system.collections.generic.list[int]]::new()
- # load data
- $FileLines = [system.io.file]::ReadAllLines('C:\path\to\day1-input.txt')
- foreach ($line in $FileLines) {
- $num1, $num2 = $line.Split(' ', [System.StringSplitOptions]::RemoveEmptyEntries)
- $null = $Col1.Add($num1)
- $null = $Col2.Add($num2)
- }
- $Col1.Sort()
- $Col2.Sort()
- # part 1
- $Part1Sum = 0
- for ($i=0; $i -lt $Col1.Count; $i++) {
- $Part1Sum += [math]::Abs($Col1[$i] - $Col2[$i])
- }
- # part 2
- $counter = [system.collections.generic.dictionary[int, int]]::new()
- foreach ($num2 in $Col2) {
- $counter[$num2]++
- }
- $Part2Sum = 0
- foreach ($num2 in $Col1) {
- $Part2Sum+= $num2 * $counter[$num2]
- }
- } | foreach { "$($_.Milliseconds) milliseconds" }
- "Part 1: $Part1Sum"
- "Part 2: $Part2Sum"
Advertisement
Add Comment
Please, Sign In to add comment