Esempio n. 1
0
        for subExp in subExpressions:
            # Evaluating sub expression
            result = evaluateSubExpression(subExp.replace('(', '').replace(')', ''), precedenceOperator)
            # Substituing result in expression
            expression = expression.replace(subExp, str(result), 1)

    # Evaluating remaining expression from left to right
    return evaluateSubExpression(expression, precedenceOperator)

# endregion COMMON
###########################

###########################
# FETCH DATA
###########################
expressions = utils.readFileLines(filename)

########
# PART 1
########

results = [evaluateExpression(e, precedenceOperator=None) for e in expressions]
print('1) Sum of each result values with both SUM and PRODUCT having same precedence = %d' % sum(results))

########
# PART 2
########

results2 = [evaluateExpression(e, precedenceOperator=OPERATOR.SUM) for e in expressions]
print('2) Sum of each result values with SUM having precedence over PRODUCT = %d' % sum(results2))
Esempio n. 2
0
def getRow(code):
    return getPosition(code[0:7], FRONT, BACK)


def getColumn(code):
    return getPosition(code[7:10], LEFT, RIGHT)


# endregion COMMON
###########################

###########################
# FETCH DATA
###########################
lines = utils.readFileLines(filename)

########
# PART 1
########

seatPositions = [(getRow(code), getColumn(code)) for code in lines]
seatPositions.sort()

print(
    '\n'.join([
        f'Seat ({row}, {col}): {GET_SEAT_ID(row, col)}'
        for (row, col) in seatPositions
    ]), '\n')
highestSeatId = GET_SEAT_ID(seatPositions[-1][0], seatPositions[-1][1])
print('1) Highest seat ID: %d' % highestSeatId)
Esempio n. 3
0
            if len(unknownAllergens) == 1:
                allergen = unknownAllergens[0]
                allergenIngredients[allergen] = ingredient

    return OrderedDict(
        sorted(allergenIngredients.items(),
               key=lambda item: item[0]))  # Sorted by allergen


# endregion COMMON
###########################

###########################
# FETCH DATA
###########################
foodList = utils.readFileLines(filename)

(foodItems, ingredients, allergens) = readFoodList(foodList)
print('Number of listed food items: %d' % len(foodItems))
print('Number of unique ingredients: %d' % len(ingredients))
print('Number of unique listed allergens: %d\n' % len(allergens))

########
# PART 1
########

(nonAllergenIngredients,
 ingredientPossibleAllergens) = findNonAllergenIngredients(
     foodItems, ingredients, allergens)
nbAllergenIngredients = (len(ingredients) - len(nonAllergenIngredients))
total = len([