コード例 #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
ファイル: day_18_evalexp.py プロジェクト: pr3d4t0r/aoc2020
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
ファイル: day_19_validmsgs.py プロジェクト: pr3d4t0r/aoc2020
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
ファイル: day_11_seats.py プロジェクト: pr3d4t0r/aoc2020
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
ファイル: day_07_baggage.py プロジェクト: pr3d4t0r/aoc2020
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
ファイル: day_02_validate.py プロジェクト: pr3d4t0r/aoc2020
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
ファイル: day_13_bus.py プロジェクト: pr3d4t0r/aoc2020
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'