You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

5 년 전
5 년 전
5 년 전
5 년 전
5 년 전
5 년 전
5 년 전
5 년 전
5 년 전
5 년 전
12345678910111213141516171819202122232425262728293031
  1. import sys
  2. from itertools import chain, cycle, permutations
  3. from intcode import compute
  4. ns = sys.stdin.read()
  5. def solve(ns, phases):
  6. out = 0
  7. for n in phases:
  8. out = list(compute(ns, iter([n, out])))[-1]
  9. return out
  10. print(max(solve(ns, phases) for phases in permutations(range(5))))
  11. def solve2(ns, phases):
  12. feedback = [0]
  13. iter_feed = iter(feedback)
  14. loop = cycle(compute(ns, chain([phase], iter_feed)) for phase in phases)
  15. try:
  16. for machine in loop:
  17. feedback.append(next(machine))
  18. except StopIteration:
  19. return feedback[-1]
  20. print(max(solve2(ns, phases) for phases in permutations(range(5, 10))))