add 2025 day 3 part 2
This commit is contained in:
44
2025/day-03/part-two.py
Normal file
44
2025/day-03/part-two.py
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
|
||||||
|
# Logger setup
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
logger.setLevel(logging.INFO)
|
||||||
|
stream_handler = logging.StreamHandler()
|
||||||
|
logger.addHandler(stream_handler)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
output = 0
|
||||||
|
logger.debug("Init output with value: " + str(output))
|
||||||
|
with open("input.txt", "r") as input:
|
||||||
|
for line in input:
|
||||||
|
line = line.strip()
|
||||||
|
output += findHighestCombination(line, 12)
|
||||||
|
logger.info("Output: " + str(output))
|
||||||
|
|
||||||
|
def findHighestCombination(x, n):
|
||||||
|
output = []
|
||||||
|
returnVal = 0
|
||||||
|
output.append(findHighestNumberIndex(x[:len(x) - n]))
|
||||||
|
returnVal = x[output[0]]
|
||||||
|
for i in range(1, n):
|
||||||
|
h_i = findHighestNumberIndex(x[output[i - 1] + 1:len(x) - n + i + 1])
|
||||||
|
output.append(h_i + output[i - 1] + 1)
|
||||||
|
returnVal += x[output[i]]
|
||||||
|
return int(returnVal)
|
||||||
|
|
||||||
|
def findHighestNumberIndex(x):
|
||||||
|
logger.debug("findHighestNumberIndex(" + x + ")")
|
||||||
|
highest = 0
|
||||||
|
index = -1
|
||||||
|
for i in range(len(x)):
|
||||||
|
val = int(x[i])
|
||||||
|
if(val > highest):
|
||||||
|
highest = val
|
||||||
|
index = i
|
||||||
|
if(highest == 9):
|
||||||
|
break
|
||||||
|
return index
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Reference in New Issue
Block a user