Ejemplo n.º 1
0
import my_tools as mt
from itertools import chain

a = mt.read_file("../inputs/day6.txt")

indices = [i for i, x in enumerate(a) if x == '']
pairs = zip(chain([0], indices), chain(indices, [None]))
groups = [a[i:j] for i, j in pairs]


count = 0

# Part 1

for ans in groups:
    ans = set(x for x in "".join(ans))
    count += len(ans)

print(count)


# Part 2
alphabet = list(map(chr, range(97, 123)))
count = 0
for ans in groups:
    if ans[0] == '':
        ans = ans[1:]

    for letter in alphabet:
        check = [1 for a in ans if letter in a]
        for a in ans:
Ejemplo n.º 2
0
        index += 1
    return (acc)


def get_commands(input_):
    commands = []
    for line in input_:
        line = line.split()
        commands.append([line[0], line[1], 1])
    return (commands)


def par1(input_):
    return run_code(get_commands(input_), loop=True)


def par2(input_):
    commands = get_commands(input_)
    for index in range(0, len(commands)):
        if commands[index][0] in ["nop", "jmp"]:
            result = run_code(deepcopy(commands), aux_index=index)
            if result:
                return result
                continue


input_ = mt.read_file("../inputs/day8.txt")
print(par1(input_))
print(par2(input_))
Ejemplo n.º 3
0
from my_tools import read_file

a = read_file("../inputs/day4.txt")
test = read_file("../inputs/test4.txt")


def separat(l):
    new_l = []
    aux = []
    for a in l:
        aux.append(a)
        if not a:
            new_l.append(aux)
            aux = []

    return new_l


required_fiels = sorted(["byr", "iyr", "eyr", "hgt", "hcl", "ecl", "pid"])


def solve1(file):

    # print(separat(a))
    b = separat(file)
    required_fiels = sorted(["byr", "iyr", "eyr", "hgt", "hcl", "ecl", "pid"])

    valid = 0

    c = [" ".join(x) for x in b]
Ejemplo n.º 4
0
    if kb[item] == {}:
        return 1
    result = 0
    for x in kb[item]:

        value = depth_calc(kb, x)
        if value == 1:
            aux = int(kb[item][x]) * value
        else:
            aux = int(kb[item][x]) * value + int(kb[item][x])
        result = result + aux

    return result


lists = mt.read_file("../inputs/day7.txt")
test_text = mt.read_file("../inputs/test7.txt")
test_text2 = mt.read_file("../inputs/test7_2.txt")

input_ = lists

aux = [parser(x) for x in input_]
ex2 = {}
for a in aux:
    ex2.update(a)

item = "shiny gold"
print(depth_calc(ex2, item))

# calculator(ex2, item2)
Ejemplo n.º 5
0
import my_tools as mt
from copy import deepcopy
import os

input_ = mt.read_file("../inputs/day9.txt")
test_ = mt.read_file("../inputs/test9.txt")
# print(test_)


def checker(list_, item):
    #print("Preable is {}".format(list_))
    # print(list_)
    for i in list_:
        value = abs(item - i)
        #print("{} - {} = {}".format(item, i, abs(item-i)))
        if value in list_ and value != item:
            return 0
    for i in list_:
        value = abs(item - i)
        #print("{} - {} = {}".format(item, i, value))
    return value


def getInvalidNumber(input_, preamble=5):
    input_ = [int(x) for x in input_]
    for i in range(len(input_) - preamble):
        #print("INDEX:", i)
        i += preamble
        result = checker(input_[i - preamble:i], input_[i])
        # print(result)
        if result == 0: