Day 1 Problem 1
This commit is contained in:
		
							
								
								
									
										1000
									
								
								1/1/input.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1000
									
								
								1/1/input.txt
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										42
									
								
								1/1/puzzle.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								1/1/puzzle.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
--- Day 1: Trebuchet?! ---
 | 
			
		||||
 | 
			
		||||
Something is wrong with global snow production, and you've been selected to take
 | 
			
		||||
a look. The Elves have even given you a map; on it, they've used stars to mark
 | 
			
		||||
the top fifty locations that are likely to be having problems.
 | 
			
		||||
 | 
			
		||||
You've been doing this long enough to know that to restore snow operations, you
 | 
			
		||||
need to check all fifty stars by December 25th.
 | 
			
		||||
 | 
			
		||||
Collect stars by solving puzzles. Two puzzles will be made available on each day
 | 
			
		||||
in the Advent calendar; the second puzzle is unlocked when you complete the
 | 
			
		||||
first. Each puzzle grants one star. Good luck!
 | 
			
		||||
 | 
			
		||||
You try to ask why they can't just use a weather machine ("not powerful enough")
 | 
			
		||||
and where they're even sending you ("the sky") and why your map looks mostly
 | 
			
		||||
blank ("you sure ask a lot of questions") and hang on did you just say the sky
 | 
			
		||||
("of course, where do you think snow comes from") when you realize that the
 | 
			
		||||
Elves are already loading you into a trebuchet ("please hold still, we need to
 | 
			
		||||
strap you in").
 | 
			
		||||
 | 
			
		||||
As they're making the final adjustments, they discover that their calibration
 | 
			
		||||
document (your puzzle input) has been amended by a very young Elf who was
 | 
			
		||||
apparently just excited to show off her art skills. Consequently, the Elves are
 | 
			
		||||
having trouble reading the values on the document.
 | 
			
		||||
 | 
			
		||||
The newly-improved calibration document consists of lines of text; each line
 | 
			
		||||
originally contained a specific calibration value that the Elves now need to
 | 
			
		||||
recover. On each line, the calibration value can be found by combining the first
 | 
			
		||||
digit and the last digit (in that order) to form a single two-digit number.
 | 
			
		||||
 | 
			
		||||
For example:
 | 
			
		||||
 | 
			
		||||
1abc2
 | 
			
		||||
pqr3stu8vwx
 | 
			
		||||
a1b2c3d4e5f
 | 
			
		||||
treb7uchet
 | 
			
		||||
 | 
			
		||||
In this example, the calibration values of these four lines are 12, 38, 15, and
 | 
			
		||||
77. Adding these together produces 142.
 | 
			
		||||
 | 
			
		||||
Consider your entire calibration document. What is the sum of all of the
 | 
			
		||||
calibration values?
 | 
			
		||||
							
								
								
									
										26
									
								
								1/1/solution.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								1/1/solution.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
set -o errexit
 | 
			
		||||
set -o nounset
 | 
			
		||||
set -o pipefail
 | 
			
		||||
if [[ "${TRACE-0}" == "1" ]]; then
 | 
			
		||||
  set -o xtrace
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
cd "$(dirname "$0")"
 | 
			
		||||
 | 
			
		||||
main ()
 | 
			
		||||
{
 | 
			
		||||
  declare -a components
 | 
			
		||||
  declare -i result=0
 | 
			
		||||
  while read -r line; do
 | 
			
		||||
    mapfile -t matches <<< "$(grep -o '[[:digit:]]' <<< "${line}")"
 | 
			
		||||
    components+=("${matches[0]}${matches[-1]}")
 | 
			
		||||
  done < input.txt
 | 
			
		||||
  for value in "${components[@]}"; do
 | 
			
		||||
    (( result += value ))
 | 
			
		||||
  done
 | 
			
		||||
  echo "${result}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main
 | 
			
		||||
		Reference in New Issue
	
	Block a user