コード例 #1
0
def part_1():
    code = get_ints_by_lines('9.txt')
    log(code)

    for idx in range(PREAMBLE_LEN, len(code)):
        log(f"checking {idx}")
        if not in_preamble(code[idx - PREAMBLE_LEN:idx], code[idx]):
            log(f"Found {code[idx]} at idx {idx}")
            return code[idx]
    return None
コード例 #2
0
def part_2():
    input_arr = get_ints_by_lines('1.txt')
    for x in range(0, len(input_arr)):
        for y in range(x + 1, len(input_arr)):
            for z in range(y + 1, len(input_arr)):
                val1, val2, val3 = input_arr[x], input_arr[y], input_arr[z]
                if val1 + val2 + val3 == 2020:
                    log(f"{val1} + {val2} + {val3} = {val1 + val2 + val3}")
                    return val1 * val2 * val3

    log('No solution')
コード例 #3
0
def part_1():
    input_arr = get_ints_by_lines('1.txt')
    # Loop through every pair in the array
    for x in range(0, len(input_arr)):
        for y in range(x + 1, len(input_arr)):
            val1, val2 = input_arr[x], input_arr[y]
            if val1 + val2 == 2020:
                log(f"{val1} + {val2} = {val1 + val2} (returning {val1 * val2})"
                    )
                return val1 * val2

    log('No solution')
コード例 #4
0
def part_1():
    jolts = [0] + sorted(get_ints_by_lines('10.txt'))
    jolts += [jolts[-1] + 3]

    log(jolts)

    diffs = [0, 0, 0, 0]
    for idx in range(1, len(jolts)):
        d = jolts[idx] - jolts[idx - 1]
        diffs[d] += 1

    log(diffs)

    return diffs[1] * diffs[3]
コード例 #5
0
def part_2():
    code = get_ints_by_lines('9.txt')
    goal = part_1()

    for idx in range(len(code)):
        list = []
        sub_idx = idx
        total = 0
        while total < goal and sub_idx < len(code):
            total += code[sub_idx]
            list += [code[sub_idx]]
            sub_idx += 1

        if total == goal:
            log('FOUND IT')
            log(list)
            return min(list) + max(list)

    return None
コード例 #6
0
def part_2():
    jolts = [0] + sorted(get_ints_by_lines('10.txt'))
    jolts += [jolts[-1] + 3]

    arrangements = recursive_get_lists(jolts)
    return arrangements