示例#1
0
def main(fileName: str = None):
    fileName = mainStart(fileName, 5)

    groupsData = loadExerciseDataFrom(fileName)
    allCounts = confirmedMixedAnswers(groupsData)
    accurateCounts = confirmedGroupAnswers(groupsData)

    print('allCounts = %d' % allCounts)
    print('accurateCounts = %d' % accurateCounts)

    return allCounts, accurateCounts
示例#2
0
def main(fileName = None):
    fileName = mainStart(fileName, 1)

    expenses = loadExpensesFrom(fileName)
    magicProductTwo = find2020TwoEntriesProductIn(expenses)
    magicProductThree = find2020ThreeEntriesProductIn(expenses)

    print('magic product (two factors) = %d' % magicProductTwo)
    print('magic product (three factors) = %d' % magicProductThree)

    return magicProductTwo, magicProductThree
示例#3
0
def main(fileName = None):
    fileName = mainStart(fileName, 3)
    treesMap = loadMapFrom(fileName)

    treeImpacts = calculateImpactsFrom(treesMap, 3, 1)
    treeImpactsAll = calculateAllImpactsUsing(treesMap, TREES_TRAVERSALS)

    print('Tree impacts = %d' % treeImpacts)
    print('Tree impacts multiple traversals = %d' % treeImpactsAll)

    return treeImpacts, treeImpactsAll
示例#4
0
def main(fileName=None):
    fileName = mainStart(fileName, 4)
    passports = loadPassportsFrom(fileName)

    validPassports = countValidIn(passports, isValidPassport)
    validPassportsStrict = countValidIn(passports, isValidPassportStrict)

    print('valid passports or NPCs: %d' % validPassports)
    print('valid passports (strict): %d' % validPassportsStrict)

    return validPassports, validPassportsStrict
示例#5
0
def main(fileName: str = None):
    fileName = mainStart(fileName, 18)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1 = resolvePuzzleUsing(data, tokens, False)
    print('answer 1: %d' % answer1)

    answer2 = resolvePuzzleUsing(data, tokens, True)
    print('answer 2: %d' % answer2)

    return answer1, answer2
示例#6
0
def main(fileName: str = None, unitTest=False):
    fileName = mainStart(fileName, 15)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1 = resolvePuzzle01Using(data, tokens)
    answer2 = -1 if unitTest else resolvePuzzle02Using(data, tokens)

    print('answer 1: %d' % answer1)
    print('answer 2: %d' % answer2)

    return answer1, answer2
示例#7
0
def main(fileName:str = None):
    fileName = mainStart(fileName, 19)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1, rules, messages = resolvePuzzle01Using(data, tokens)
    print('answer 1: %d' % answer1)

    answer2 = resolvePuzzle02Using(rules, messages)
    print('answer 2: %d' % answer2)

    return answer1, answer2
示例#8
0
def main(fileName: str = None):
    fileName = mainStart(fileName, 12)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1 = resolvePuzzle01Using(data, tokens)
    answer2, _ = resolvePuzzle02Using(data, tokens)

    print('answer 1: %d' % answer1)
    print('answer 2: %d' % answer2)

    return answer1, answer2
示例#9
0
def main(fileName: str = None):
    fileName = mainStart(fileName, 11)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1, totalRounds = resolvePuzzle01Using(data, tokens)
    print('answer 1: %d in %d rounds' % (answer1, totalRounds))

    answer2, totalRounds = resolvePuzzle02Using(data, tokens)
    print('answer 2: %d in %d rounds' % (answer2, totalRounds))

    return answer1, answer2
示例#10
0
def main(fileName: str = None, fieldSignature='departure', unitTest=False):
    fileName = mainStart(fileName, 16)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1, ticketRanges, ticket, nearby, validTickets, invalidTickets = resolvePuzzle01Using(
        data, tokens)
    print('answer 1: %d' % answer1)
    answer2 = -1 if unitTest else resolvePuzzle02Using(
        ticketRanges, ticket, validTickets, fieldSignature)
    print('answer 2: %d' % answer2)

    return answer1, answer2
示例#11
0
def main(fileName: str = None):
    fileName = mainStart(fileName, 6)

    data = loadExerciseDataFrom(fileName)

    answer1, \
    rules = resolvePuzzle01Using(data)
    answer2 = resolvePuzzle02Using(data)

    print('answer 1: %d' % answer1)
    print('answer 2: %d' % answer2)

    return answer1, answer2
示例#12
0
def main(fileName=None):
    fileName = mainStart(fileName, 5)
    boardingPasses = loadBoardingPassesFrom(fileName)

    maxID, \
    seatIDs = findHighestIDIn(boardingPasses)
    mySeatID = resolveSeat(seatIDs) if len(
        seatIDs) > 100 else 0  # for unit tests; see day 5 spec for reason

    print('maxID = %d' % maxID)
    print('My seat = %d' % mySeatID)

    return maxID, mySeatID
示例#13
0
def main(fileName: str = None, preambleLength=PREAMBLE_LENGTH):
    fileName = mainStart(fileName, 9)

    data, tokens = loadExerciseDataFrom(fileName)

    answer1, \
    data = resolvePuzzle01Using(data, tokens, preambleLength)
    answer2 = resolvePuzzle02Using(data, tokens, preambleLength, answer1)

    print('answer 1: %d' % answer1)
    print('answer 2: %d' % answer2)

    return answer1, answer2
示例#14
0
def main(fileName = None):
    fileName = mainStart(fileName, 2)
    
    validOldStyle = 0
    valid = 0
    for password in extractPasswordsFrom(fileName):
        validOldStyle += 1 if meetsOldPolicy(password) else 0
        valid += 1 if meetsPolicy(password) else 0

    print('valid passwords (old) = %d' % validOldStyle)
    print('valid passwords (new) = %d' % valid)

    return validOldStyle, valid
示例#15
0
def main(fileName: str = None):
    fileName = mainStart(fileName, 2)

    data, tokens = loadExerciseDataFrom(fileName)
    rawText = loadRawExerciseTextFrom(fileName)
    textRecords = loadExerciseDataAsTextRecordsFrom(fileName)

    # ------------------------------------------
    # Answer 1
    # ------------------------------------------
    answer1 = resolvePuzzle01Using(data, tokens, rawText, textRecords)
    answer2 = resolvePuzzle02Using(data, tokens, rawText, textRecords)

    print('answer 1: %d, answer 2: %d' % (answer1, answer2))

    return answer1, answer2
示例#16
0
def main(fileName: str = None):
    fileName = mainStart(fileName, 13)

    data, tokens = loadExerciseDataFrom(fileName)

    earliestDeparture = int(data[0])
    busSchedule = [int(busID) for busID in data[1].split(',') if busID != 'x']
    answer1, _ = resolvePuzzle01Using(earliestDeparture, busSchedule)

    busSchedule = [
        int(busID) if busID != 'x' else -1 for busID in data[1].split(',')
    ]
    answer2 = resolvePuzzle02Using(busSchedule)

    print('answer 1: %d' % answer1)
    print('answer 2: %d' % answer2)

    return answer1, answer2
示例#17
0
def main(fileName: str = None, unitTest=False):
    fileName = mainStart(fileName, 17)
    shape = 15 if unitTest else 20

    data, tokens = loadExerciseDataFrom(fileName)

    # ------------------------------------------
    # Answer 1
    # ------------------------------------------
    answer1 = resolvePuzzle01Using(data, tokens, 6, 3, shape)
    print('answer 1: %d' % answer1)

    # ------------------------------------------
    # Answer 2
    # ------------------------------------------
    answer2 = resolvePuzzle02Using(data, tokens, unitTest)
    print('answer 2: %d' % answer2)

    return answer1, answer2
示例#18
0
def test_mainStart():
    assert mainStart('bogus-name.txt', 1) == 'bogus-name.txt'