Esempio n. 1
0
    for line in data:
        if prev is not None and line > prev:
            increased += 1
        prev = line

    return increased


def second(data):
    increased = 0
    prev_prev = data[0]
    prev = data[1]
    prev_sum = None
    for line in data[2:]:
        current_sum = sum([prev_prev, prev, line])
        if prev_sum is not None and current_sum > prev_sum:
            increased += 1
        prev_sum = current_sum
        prev_prev = prev
        prev = line

    return increased


if __name__ == "__main__":
    content = list(map(int, get_input_content(__file__)))

    print(f'Le résultat de la première partie est :\n{first(content)}')

    print(f'Le résultat de la deuxième partie est :\n{second(content)}')
Esempio n. 2
0
    for step in range(40):
        next_pair_counter = Counter()
        for pair, count in pair_counter.items():
            if pair in pair_insertions:
                next_pair_counter[pair[0] + pair_insertions[pair]] += count
                next_pair_counter[pair_insertions[pair] + pair[1]] += count
        pair_counter = next_pair_counter

    counter = Counter()
    for pair, count in pair_counter.items():
        counter[pair[0]] += count
    # Add last letter
    counter[polymer[-1]] += 1

    return max(counter.values()) - min(counter.values())


if __name__ == "__main__":
    content = get_input_content(__file__)

    template = content[0]
    content = content[2:]

    print(
        f'Le résultat de la première partie est :\n{first(template, content)}')

    print(
        f'Le résultat de la deuxième partie est :\n{second(template, content)}'
    )