Esempio n. 1
0
import AoC_tools.aoc_tools as aoc

t = aoc.start()
data = aoc.string2list("input.txt", sep=",", numeric=True, display=False)

amounts = {}

for i in range(min(data), max(data) + 1):
    fuel = 0
    for d in data:
        n = abs(d - i)
        fuel += (n * (n + 1)) / 2
    amounts[i] = fuel

result = min(amounts.values())
assert result == 97164301
aoc.end(t)
Esempio n. 2
0
import AoC_tools.aoc_tools as aoc
data = aoc.string2list("input.txt", sep=",", numeric=True)

amounts = {}

for i in range(min(data), max(data)+1):
    fuel = 0
    for d in data:
        fuel += abs(d - i)
    amounts[i] = fuel

result = min(amounts.values())

assert result == 344297

Esempio n. 3
0
import AoC_tools.aoc_tools as aoc
from collections import Counter

state = aoc.string2list('input.txt', sep=",", numeric=True, display=False)

def run(freq):
    newfreq = {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0}
    for key, value in freq.items():
        if key > 0:
            newfreq[key-1] += value
        elif key == 0:
            newfreq[6] += value
            newfreq[8] += value
    return newfreq

freq = Counter(state)
aoc.sorted_print(freq)

for i in range(256):
    freq = run(freq)

#aoc.sorted_print(freq)
result = sum(freq.values())
assert result == 1644874076764
Esempio n. 4
0
import AoC_tools.aoc_tools as aoc

data = aoc.string2list(
    path="C:/Users/Admin/SURFdrive/Code/advent_of_code/2021/4/input.txt",
    sep="\n\n")
aoc.lprint(data)
print(len(data))

boards = []
firstline = data[0]
numbers = firstline.split(",")
data = data[1:]
tmp = [line.split("\n") for line in data]
for i in range(len(tmp)):
    b = [(line.split()) for line in tmp[i]]
    print(b)
    boards.append(b)
    #aoc.make_grid(b)


def mark_number(board, number):
    for i in range(len(board)):
        for j in range(len(board[0])):
            if board[i][j] == number:
                board[i][j] = 'X'
    return board


def check_board(board):
    ncols = len(board[0])
    nrows = len(board)
Esempio n. 5
0
import AoC_tools.aoc_tools as aoc

state = aoc.string2list('input.txt', sep=",", numeric=True)

def run():
    for i in range(len(state)):
        if state[i] == 0:
            state.append(8)
            state[i] = 6
        else:
            state[i] -= 1
    #print(state)

for i in range(80):
    #print("after", i+1, "days:")
    run()
print(len(state))

assert len(state) == 362740