AOC Day 1 puzzle solved
This commit is contained in:
commit
3d212a0c85
1000
Day-1/Part 1/input.txt
Normal file
1000
Day-1/Part 1/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
32
Day-1/Part 1/solution.py
Normal file
32
Day-1/Part 1/solution.py
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
def findFirstDigitInString(string: str) -> str:
|
||||||
|
length_of_string = len(string)
|
||||||
|
i = 0
|
||||||
|
while i < length_of_string :
|
||||||
|
if ( string[i].isdigit()):
|
||||||
|
return string[i]
|
||||||
|
i+=1
|
||||||
|
|
||||||
|
numbers = []
|
||||||
|
|
||||||
|
with open("input.txt") as file:
|
||||||
|
line = file.readline()
|
||||||
|
while line:
|
||||||
|
firstdigit =findFirstDigitInString(line)
|
||||||
|
lastdigit = findFirstDigitInString(line[::-1]) # doing the same for the string in reverse will get the last digit
|
||||||
|
|
||||||
|
digit = firstdigit + lastdigit
|
||||||
|
digit = int(digit)
|
||||||
|
|
||||||
|
print(f"found: {digit}")
|
||||||
|
numbers.append(digit)
|
||||||
|
|
||||||
|
line = file.readline()
|
||||||
|
|
||||||
|
print(numbers)
|
||||||
|
# now we'll need to sum them
|
||||||
|
sum = 0
|
||||||
|
for n in numbers:
|
||||||
|
sum += n
|
||||||
|
|
||||||
|
|
||||||
|
print(f"sum: {sum}")
|
1000
Day-1/Part 2/input.txt
Normal file
1000
Day-1/Part 2/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
39
Day-1/Part 2/solution.py
Normal file
39
Day-1/Part 2/solution.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
spelled_out_digits = [
|
||||||
|
"one",
|
||||||
|
"two",
|
||||||
|
"three",
|
||||||
|
"four",
|
||||||
|
"five",
|
||||||
|
"six",
|
||||||
|
"seven",
|
||||||
|
"eight",
|
||||||
|
"nine",
|
||||||
|
]
|
||||||
|
|
||||||
|
def findFirstDigitInString(string: str) -> str:
|
||||||
|
lenght_of_string = len(string)
|
||||||
|
i = 0
|
||||||
|
while i < lenght_of_string:
|
||||||
|
substring = string[i:i+5]
|
||||||
|
if(string[i].isdigit()):
|
||||||
|
return string[i]
|
||||||
|
if (string[i].isalpha() ):
|
||||||
|
digit = [x for x in spelled_out_digits if substring.find(x) == 0 or substring.find(x[::-1]) == 0]
|
||||||
|
if len(digit) != 0:
|
||||||
|
return str(spelled_out_digits.index(digit[0]) + 1)
|
||||||
|
i+=1
|
||||||
|
|
||||||
|
numbers = []
|
||||||
|
with open("input.txt") as file:
|
||||||
|
line = file.readline()
|
||||||
|
while line :
|
||||||
|
firstdigit = findFirstDigitInString(line)
|
||||||
|
lastdigit = findFirstDigitInString(line[::-1])
|
||||||
|
|
||||||
|
numbers.append(int(f"{firstdigit}{lastdigit}"))
|
||||||
|
line = file.readline()
|
||||||
|
|
||||||
|
sum = 0
|
||||||
|
for n in numbers:
|
||||||
|
sum += n
|
||||||
|
print(f"sum: {sum}")
|
7
Day-1/Part 2/test.txt
Normal file
7
Day-1/Part 2/test.txt
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
two1nine
|
||||||
|
eightwothree
|
||||||
|
abcone2threexyz
|
||||||
|
xtwone3four
|
||||||
|
4nineeightseven2
|
||||||
|
zoneight234
|
||||||
|
7pqrstsixteen
|
Loading…
x
Reference in New Issue
Block a user