Example #1
0
def main():
    inputHandle = loadFile("01/input.txt")
    massList = fileToList(inputHandle, "\n")

    totalFuel = sum([calculateFuel(mass) for mass in massList])

    print(totalFuel)
Example #2
0
def main():
    inputHandle = loadFile("08/input.txt")
    content = inputHandle.read()
    inputList = list(content)
    inputIntList = list(map(int, inputList))

    horizontalChunks = list(chunks(inputIntList, 25))
    layerChunks = list(chunks(horizontalChunks, 6))
    layerChunks.reverse()

    # Flatten image
    imageValues = None
    for i, layer in enumerate(layerChunks):
        if i == 0:
            imageValues = layer
            continue
        for ii, row in enumerate(layer):
            for iii, digit in enumerate(row):
                if digit != 2:
                    imageValues[ii][iii] = digit

    # Convert to RGBa
    for ii, row in enumerate(imageValues):
        for iii, digit in enumerate(row):
            if digit == 0:  # Black
                imageValues[ii][iii] = (0, 0, 0, 255)
            if digit == 1:  # White
                imageValues[ii][iii] = (255, 255, 255, 255)
            if digit == 2:  # Transparent
                imageValues[ii][iii] = (0, 0, 0, 0)

    flattened = [val for sublist in imageValues for val in sublist]
    img = Image.new("RGBA", (25, 6))
    img.putdata(flattened)
    img.show()
Example #3
0
def main():
    inputHandle = loadFile("08/input.txt")
    content = inputHandle.read()
    inputList = list(content)
    inputIntList = list(map(int, inputList))

    horizontalChunks = list(chunks(inputIntList, 25))
    layerChunks = list(chunks(horizontalChunks, 6))

    leastZeros = None
    leastZerosIndex = None
    for lIndex, layer in enumerate(layerChunks):
        zeroCount = 0
        for line in layer:
            zeroCount += line.count(0)
        if leastZeros is None:
            leastZeros = zeroCount
            leastZerosIndex = lIndex
            continue
        if zeroCount < leastZeros:
            leastZeros = zeroCount
            leastZerosIndex = lIndex

    ones = 0
    twos = 0
    for line in layerChunks[leastZerosIndex]:
        ones += line.count(1)
        twos += line.count(2)
    print(ones * twos)
Example #4
0
def main():
    fh = loadFile("03/input.txt")
    content = fh.read()
    lines = content.split("\n")

    path1 = lines[0].split(",")
    path2 = lines[1].split(",")

    cord1 = getCoordinates(path1)
    cord2 = getCoordinates(path2)
    intersections = findIntersections(cord1, cord2)

    print(getClosestIntersection(intersections))
Example #5
0
def main():
    inputHandle = loadFile("06/input.txt")
    inputList = fileToList(inputHandle, "\n")

    orbits = [x.split(")") for x in inputList]

    g = nx.Graph()

    for a, b in orbits:
        g.add_edge(b, a)

    path = nx.shortest_path_length(g, source="H4S", target="NRN")

    print(path)
Example #6
0
def main():
    inputHandle = loadFile("07/input.txt")
    program = fileToIntList(inputHandle, ",")

    phaseSettings = list(permutations([0, 1, 2, 3, 4], 5))

    highestSignal = 0

    for phaseSetting in phaseSettings:
        currentSignal = runPermutation(program, phaseSetting)

        if currentSignal > highestSignal:
            highestSignal = currentSignal

    print(highestSignal)
Example #7
0
def main():
    inputHandle = loadFile("06/input.txt")
    inputList = fileToList(inputHandle, "\n")

    orbits = [x.split(")") for x in inputList]

    g = nx.DiGraph()

    for a, b in orbits:
        g.add_edge(b, a)

    paths = nx.shortest_path(g)

    l1 = list()
    for item in paths.values():
        for x in item.values():
            if len(x) > 1:
                l1.append(x)

    print(len(l1))
Example #8
0
def main():
    inputVal = 5
    inputHandle = loadFile("05/input.txt")
    program = fileToList(inputHandle, ",")

    intcode.run(inputVal, program)
Example #9
0
def main():
    inputVal = 2
    inputHandle = loadFile("09/input.txt")
    program = parseIntCode(inputHandle)

    intcode.run(inputVal, program)