Exemple #1
0
def part2(s: str) -> int:
    adapters = input_to_int(s)
    adapters.append(0)
    adapters.sort()
    dp = [0] * len(adapters)
    dp[0] = 1
    for i in range(len(adapters)):
        for j in range(1, 4):
            if j > i:
                break
            elif adapters[i] <= adapters[i - j] + 3:
                dp[i] += dp[i - j]
    return dp[-1]
Exemple #2
0
def part1(s: str) -> int:
    adapters = input_to_int(s)
    adapters.append(0)
    adapters.sort()
    jolt_1 = 0
    jolt_3 = 1
    for i in range(len(adapters) - 1):
        if adapters[i + 1] - adapters[i] > 3:
            break
        elif adapters[i + 1] - adapters[i] == 1:
            jolt_1 += 1
        elif adapters[i + 1] - adapters[i] > 1:
            jolt_3 += 1
    return jolt_1 * jolt_3
Exemple #3
0
def TTT_input(state):
    result = None
    while not result:
        try:
            square_str = input("Pick a square: ")
            square_str_list = square_str.split(",")
            if len(square_str_list) != 2:
                raise ValueError(
                    "Could not parse (x, y) coordinates from input.")
            result = [utils.input_to_int(entry) for entry in square_str_list]
        except ValueError as err:
            print(err)
            continue
    return 3 * result[1] + result[0]
def part2(s: str) -> int:
    nums = input_to_int(s)
    return find_product_of_three(nums, 2020)
def part2(s: str, n: int) -> int:
    numbers = input_to_int(s)
    min_n, max_n = find_contigious_set(numbers, n)
    return min_n + max_n
def part1(s: str, preamble_len: int) -> int:
    numbers = input_to_int(s)
    n = find_wrong_number(numbers, preamble_len)
    return n