Compare commits
20 commits
a53cf34520
...
68bb1132a9
Author | SHA1 | Date | |
---|---|---|---|
Bruno BELANYI | 68bb1132a9 | ||
Bruno BELANYI | 022672fcd0 | ||
Bruno BELANYI | de0afa76fd | ||
Bruno BELANYI | 1e274be43f | ||
Bruno BELANYI | 9534e5c929 | ||
Bruno BELANYI | e5ecef7eed | ||
Bruno BELANYI | 614bf9d842 | ||
Bruno BELANYI | 7cf9f46040 | ||
Bruno BELANYI | a26d95809d | ||
Bruno BELANYI | f8ddf5f4fd | ||
Bruno BELANYI | 7ec10eecd1 | ||
Bruno BELANYI | 8e96f33b91 | ||
Bruno BELANYI | 465f22bbee | ||
Bruno BELANYI | b78f5b1f40 | ||
Bruno BELANYI | 8c90ac89b3 | ||
Bruno BELANYI | f5a30ee2da | ||
Bruno BELANYI | a6f9104cb4 | ||
Bruno BELANYI | 8ebb134cdf | ||
Bruno BELANYI | f728552afa | ||
Bruno BELANYI | 3761139723 |
43
2021/d06/ex1/ex1.py
Executable file
43
2021/d06/ex1/ex1.py
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import itertools
|
||||
import sys
|
||||
from collections import Counter
|
||||
from dataclasses import dataclass
|
||||
from typing import Iterator, List, Tuple
|
||||
|
||||
|
||||
def nth(iterable: Iterator[int], n: int) -> int:
|
||||
return next(itertools.islice(iterable, n, None))
|
||||
|
||||
|
||||
def solve(input: List[str]) -> int:
|
||||
fish = [0] * 9
|
||||
for n, count in Counter(map(int, input[0].split(","))).items():
|
||||
fish[n] = count
|
||||
|
||||
def step(fish: List[int]) -> List[int]:
|
||||
# Count how many clones happen
|
||||
new_fish = fish[0]
|
||||
|
||||
# Do the next cycle
|
||||
fish[0:-1] = fish[1:]
|
||||
fish[6] += new_fish
|
||||
fish[8] = new_fish # Override number of new fish
|
||||
|
||||
return fish
|
||||
|
||||
def iter(fish: List[int]) -> Iterator[List[int]]:
|
||||
while True:
|
||||
yield (fish := step(fish))
|
||||
|
||||
return sum(nth(iter(fish), 80 - 1))
|
||||
|
||||
|
||||
def main() -> None:
|
||||
input = [line.strip() for line in sys.stdin.readlines()]
|
||||
print(solve(input))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
1
2021/d06/ex1/input
Normal file
1
2021/d06/ex1/input
Normal file
|
@ -0,0 +1 @@
|
|||
3,1,4,2,1,1,1,1,1,1,1,4,1,4,1,2,1,1,2,1,3,4,5,1,1,4,1,3,3,1,1,1,1,3,3,1,3,3,1,5,5,1,1,3,1,1,2,1,1,1,3,1,4,3,2,1,4,3,3,1,1,1,1,5,1,4,1,1,1,4,1,4,4,1,5,1,1,4,5,1,1,2,1,1,1,4,1,2,1,1,1,1,1,1,5,1,3,1,1,4,4,1,1,5,1,2,1,1,1,1,5,1,3,1,1,1,2,2,1,4,1,3,1,4,1,2,1,1,1,1,1,3,2,5,4,4,1,3,2,1,4,1,3,1,1,1,2,1,1,5,1,2,1,1,1,2,1,4,3,1,1,1,4,1,1,1,1,1,2,2,1,1,5,1,1,3,1,2,5,5,1,4,1,1,1,1,1,2,1,1,1,1,4,5,1,1,1,1,1,1,1,1,1,3,4,4,1,1,4,1,3,4,1,5,4,2,5,1,2,1,1,1,1,1,1,4,3,2,1,1,3,2,5,2,5,5,1,3,1,2,1,1,1,1,1,1,1,1,1,3,1,1,1,3,1,4,1,4,2,1,3,4,1,1,1,2,3,1,1,1,4,1,2,5,1,2,1,5,1,1,2,1,2,1,1,1,1,4,3,4,1,5,5,4,1,1,5,2,1,3
|
43
2021/d06/ex2/ex2.py
Executable file
43
2021/d06/ex2/ex2.py
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import itertools
|
||||
import sys
|
||||
from collections import Counter
|
||||
from dataclasses import dataclass
|
||||
from typing import Iterator, List, Tuple
|
||||
|
||||
|
||||
def nth(iterable: Iterator[int], n: int) -> int:
|
||||
return next(itertools.islice(iterable, n, None))
|
||||
|
||||
|
||||
def solve(input: List[str]) -> int:
|
||||
fish = [0] * 9
|
||||
for n, count in Counter(map(int, input[0].split(","))).items():
|
||||
fish[n] = count
|
||||
|
||||
def step(fish: List[int]) -> List[int]:
|
||||
# Count how many clones happen
|
||||
new_fish = fish[0]
|
||||
|
||||
# Do the next cycle
|
||||
fish[0:-1] = fish[1:]
|
||||
fish[6] += new_fish
|
||||
fish[8] = new_fish # Override number of new fish
|
||||
|
||||
return fish
|
||||
|
||||
def iter(fish: List[int]) -> Iterator[List[int]]:
|
||||
while True:
|
||||
yield (fish := step(fish))
|
||||
|
||||
return sum(nth(iter(fish), 256 - 1))
|
||||
|
||||
|
||||
def main() -> None:
|
||||
input = [line.strip() for line in sys.stdin.readlines()]
|
||||
print(solve(input))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
1
2021/d06/ex2/input
Normal file
1
2021/d06/ex2/input
Normal file
|
@ -0,0 +1 @@
|
|||
3,1,4,2,1,1,1,1,1,1,1,4,1,4,1,2,1,1,2,1,3,4,5,1,1,4,1,3,3,1,1,1,1,3,3,1,3,3,1,5,5,1,1,3,1,1,2,1,1,1,3,1,4,3,2,1,4,3,3,1,1,1,1,5,1,4,1,1,1,4,1,4,4,1,5,1,1,4,5,1,1,2,1,1,1,4,1,2,1,1,1,1,1,1,5,1,3,1,1,4,4,1,1,5,1,2,1,1,1,1,5,1,3,1,1,1,2,2,1,4,1,3,1,4,1,2,1,1,1,1,1,3,2,5,4,4,1,3,2,1,4,1,3,1,1,1,2,1,1,5,1,2,1,1,1,2,1,4,3,1,1,1,4,1,1,1,1,1,2,2,1,1,5,1,1,3,1,2,5,5,1,4,1,1,1,1,1,2,1,1,1,1,4,5,1,1,1,1,1,1,1,1,1,3,4,4,1,1,4,1,3,4,1,5,4,2,5,1,2,1,1,1,1,1,1,4,3,2,1,1,3,2,5,2,5,5,1,3,1,2,1,1,1,1,1,1,1,1,1,3,1,1,1,3,1,4,1,4,2,1,3,4,1,1,1,2,3,1,1,1,4,1,2,5,1,2,1,5,1,1,2,1,2,1,1,1,1,4,3,4,1,5,5,4,1,1,5,2,1,3
|
Loading…
Reference in a new issue