1234567891011121314151617181920212223 |
- import argparse
- from typing import List, Set, NamedTuple
- import functools
- parser = argparse.ArgumentParser()
- parser.add_argument("ifile", type=argparse.FileType('r'))
- args = parser.parse_args()
- fish = [int(x) for x in args.ifile.readline().split(',')]
- class FishState:
- all_fish: List[int]
- new_fish: int
- def nextGeneration(all_fish: List[int]):
- num_new = functools.reduce(lambda new, fish: new if fish > 0 else new + 1, all_fish, 0)
- age_fish = list(map(lambda fish: fish - 1 if fish > 0 else 6, all_fish))
- return age_fish + [8] * num_new
- #print(len(functools.reduce(lambda state, _: nextGeneration(state), range(0, 80), fish)))
- print(len(functools.reduce(lambda state, _: nextGeneration(state), range(0, 80), fish)))
|