Esempio n. 1
0
def parse(
        filename: str
) -> Tuple[str, Dict[str, List[str]], Dict[str, List[str]]]:
    lines = all_lines(filename)

    begin = lines[-1]
    rules = defaultdict(list)
    rules_c = defaultdict(list)
    for line in lines[0:-2]:
        left, right = line.split(" => ")
        rules[left].append(right)
        rules_c[right].append(left)

    return begin, rules, rules_c
Esempio n. 2
0
 def part2(filename: str) -> int:
     """ Given a filename, solve 2015 day 18 part 2 """
     grid = np.array([parse_line(x) for x in all_lines(filename)])
     return part2(grid, 100)
Esempio n. 3
0
 def part2(filename: str) -> int:
     """ Given a filename, solve 2015 day 17 part 2 """
     containers = [int(x) for x in all_lines(filename)]
     return part2(containers, 150)
Esempio n. 4
0
 def part2(filename: str) -> int:
     """ Given a filename, solve 2015 day 06 part 2 """
     commands = [parse_line(line) for line in all_lines(filename)]
     return part2(commands)
Esempio n. 5
0
 def part2(filename: str) -> int:
     """ Given a filename, solve 2015 day 14 part 2 """
     deers = [parse_line(line) for line in all_lines(filename)]
     return race_winner_points(deers, 2503)
Esempio n. 6
0
 def part2(filename: str) -> int:
     """ Given a filename, solve 2015 day 05 part 2 """
     lines = all_lines(filename)
     return sum(1 for line in lines if is_nice2(line))
Esempio n. 7
0
 def part2(filename: str) -> int:
     """ Given a filename, solve 2015 day 15 part 2 """
     ings = [parse_line(line) for line in all_lines(filename)]
     return part1(ings, 500)
Esempio n. 8
0
def parse(filename: str) -> List[int]:
    return [int(x) for x in all_lines(filename)]
Esempio n. 9
0
 def part2(filename: str) -> int:
     """ Given a filename, solve 2015 day 09 part 2 """
     distances, cities = parse(all_lines(filename))
     return longest_distance(distances, cities)