advent_of_code_2023/Day01/python/part1.py

51 lines
1.4 KiB
Python

def extract_calibration_value(line):
"""
Extract the calibration value from a line of text.
The calibration value is formed by combining the first digit and the last digit in the line.
:param line: A string representing a line of text from the document.
:return: The calibration value as an integer.
"""
first_digit = None
last_digit = None
# Find the first digit in the line
for char in line:
if char.isdigit():
first_digit = char
break
# Find the last digit in the line
for char in reversed(line):
if char.isdigit():
last_digit = char
break
# Combine the first and last digits to form the calibration value
if first_digit and last_digit:
return int(first_digit + last_digit)
else:
return 0
def sum_calibration_values(filename):
"""
Calculate the sum of all calibration values in the document.
:param filename: The name of the file containing the document.
:return: The sum of all calibration values.
"""
total = 0
# Open the file and process each line
with open(filename, 'r') as file:
for line in file:
total += extract_calibration_value(line)
return total
# Main execution
if __name__ == "__main__":
filename = "../input.txt"
total_calibration_value = sum_calibration_values(filename)
print(f"Total Sum of Calibration Values: {total_calibration_value}")