31 lines
567 B
Python
31 lines
567 B
Python
def read_file():
|
|
with open("input.txt","r") as f:
|
|
return f.read().split('\n')
|
|
|
|
def id(seat):
|
|
"""
|
|
Translate to binary.
|
|
"""
|
|
return int(seat.translate(str.maketrans('FBLR', '0101')), 2)
|
|
|
|
def part1(seats):
|
|
"""
|
|
Find the highest seat ID.
|
|
"""
|
|
ids = sorted(map(id, seats))
|
|
return max(ids)
|
|
|
|
def part2(seats):
|
|
"""
|
|
Find your seat ID, which is missing.
|
|
"""
|
|
ids = sorted(map(id, seats))
|
|
return sum( range(min(ids), max(ids)+1) ) - sum(ids)
|
|
|
|
def main():
|
|
seats = read_file()
|
|
print(f'{part1(seats)=}')
|
|
print(f'{part2(seats)=}')
|
|
|
|
if __name__ == "__main__":
|
|
main() |