示例#1
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2021, 24)
    my_aocd.print_header(puzzle.year, puzzle.day)

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 252)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#2
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2015, 14)

    assert _do_part_1(TEST, 1000) == 1120
    assert _do_part_2(TEST, 1000) == 689

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 9)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#3
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2017, 16)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert _solve(_parse(TEST), "abcde", 1) == "baedc"
    assert _solve(_parse(TEST), "abcde", 2) == "ceadb"

    inputs = my_aocd.get_input(2017, 16, 1)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#4
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2021, 21)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST) == 739785
    assert part_2(TEST) == 444356092776315

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 2)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#5
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2021, 8)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST) == 26
    assert part_2(TEST) == 61229

    inputs = my_aocd.get_input(2021, 8, 200)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#6
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2021, 13)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST) == 17
    assert _solve_2(TEST) == RESULT

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 748)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#7
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2021, 10)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST) == 26_397
    assert part_2(TEST) == 288_957

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 94)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#8
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2021, 23)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST) == 12_521
    assert part_2(TEST) == 44_169

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 5)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#9
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2017, 2)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST1) == 18
    assert part_2(TEST2) == 9

    inputs = my_aocd.get_input(2017, 2, 16)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#10
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2021, 25)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST) == 58
    assert visualize_part_1(TEST) is None

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 137)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#11
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2021, 14)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST) == 1_588
    assert part_2(TEST) == 2_188_189_693_529

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 102)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#12
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2021, 22)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST1) == 39
    assert part_1(TEST2) == 590_784
    assert part_1(TEST3) == 474_140
    assert part_2(TEST3) == 2_758_514_936_282_235

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 420)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#13
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2015, 6)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST1) == 1_000_000
    assert part_1(TEST2) == 1000
    assert part_1(TEST3) == 0
    assert part_2(TEST4) == 1
    assert part_2(TEST5) == 2_000_000

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 300)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#14
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2021, 12)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST1) == 10
    assert part_1(TEST2) == 19
    assert part_1(TEST3) == 226
    assert part_2(TEST1) == 36
    assert part_2(TEST2) == 103
    assert part_2(TEST3) == 3509

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 21)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#15
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2021, 18)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert str(_solve_1(["[1,1]", "[2,2]", "[3,3]",
                         "[4,4]", "[5,5]", "[6,6]"])) \
        == "[[[[5,0],[7,4]],[5,5]],[6,6]]"
    assert str(_solve_1(TEST1)) \
        == "[[[[8,7],[7,7]],[[8,6],[7,7]]],[[[0,7],[6,6]],[8,7]]]"
    assert part_1(TEST2) == 4140
    assert part_2(TEST2) == 3993

    inputs = my_aocd.get_input(puzzle.year, puzzle.day, 100)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#16
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2017, 4)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(("aa bb cc dd ee", )) == 1
    assert part_1(("aa bb cc dd aa", )) == 0
    assert part_1(("aa bb cc dd aaa", )) == 1
    assert part_2(("abcde fghij", )) == 1
    assert part_2(("abcde xyz ecdab", )) == 0
    assert part_2(("a ab abc abd abf abj", )) == 1
    assert part_2(("iiii oiii ooii oooi oooo", )) == 1
    assert part_2(("oiii ioii iioi iiio", )) == 0

    inputs = my_aocd.get_input(2017, 4, 512)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#17
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2017, 1)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(TEST1) == 3
    assert part_1(TEST2) == 4
    assert part_1(TEST3) == 0
    assert part_1(TEST4) == 9
    assert part_2(TEST5) == 6
    assert part_2(TEST6) == 0
    assert part_2(TEST7) == 4
    assert part_2(TEST8) == 12
    assert part_2(TEST9) == 4

    inputs = my_aocd.get_input(2017, 1, 1)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)
示例#18
0
def main() -> None:
    puzzle = aocd.models.Puzzle(2017, 3)
    my_aocd.print_header(puzzle.year, puzzle.day)

    assert part_1(("1", )) == 0
    assert part_1(("12", )) == 3
    assert part_1(("23", )) == 2
    assert part_1(("1024", )) == 31
    assert part_2(("1", )) == 1
    assert part_2(("2", )) == 4
    assert part_2(("3", )) == 4
    assert part_2(("4", )) == 5
    assert part_2(("5", )) == 10

    inputs = my_aocd.get_input(2017, 3, 1)
    result1 = part_1(inputs)
    print(f"Part 1: {result1}")
    result2 = part_2(inputs)
    print(f"Part 2: {result2}")
    my_aocd.check_results(puzzle, result1, result2)