コード例 #1
0
ファイル: part1.py プロジェクト: AJSterner/AdventOfCode2020
def solution(puzzle_input: aoc.Input):
    codes = np.array([[int(b) for b in line.strip()]
                      for line in puzzle_input.lines()])
    gamma_arr = codes.sum(axis=0) > (len(codes) // 2)
    gamma = to_int(gamma_arr)
    epsilon = to_int(~gamma_arr)
    return gamma * epsilon
コード例 #2
0
ファイル: part2.py プロジェクト: AJSterner/AdventOfCode2020
def solution(puzzle_input: aoc.Input):
    lines = puzzle_input.lines()
    codes = [int(line, base=2) for line in lines]
    code_width = len(lines[0].strip())
    msb = 1 << (code_width - 1)
    oxygen_generator_rating = rating(codes, msb, True)
    CO2_scrubber_rating = rating(codes, msb, False)
    return oxygen_generator_rating * CO2_scrubber_rating