You are viewing a single comment's thread. Return to all comments →
As usual, when you see the completion percentage for a question go below 90% you can suspect that it's going to be a bit nasty...
This problem has two parts: generating the first 'q' primes, and then doing the plate sorting/stacking.
Python 3:
def eratosthenes(): from collections import defaultdict composites = defaultdict(list) x = 2 while True: if x in composites: for c in composites[x]: composites[c+x].append(c) del composites[x] else: yield x composites[x*x] = [x] x += 1 def waiter(number, q): plates = number answers = [] primes = eratosthenes() for _ in range(q): A = [] B = [] prime = next(primes) while plates: plate = plates.pop() if plate % prime == 0: B.append(plate) else: A.append(plate) answers.extend(reversed(B)) plates = A answers.extend(reversed(A)) return answers
Seems like cookies are disabled on this browser, please enable them to open this website
An unexpected error occurred. Please try reloading the page. If problem persists, please contact support@hackerrank.com
Waiter
You are viewing a single comment's thread. Return to all comments →
As usual, when you see the completion percentage for a question go below 90% you can suspect that it's going to be a bit nasty...
This problem has two parts: generating the first 'q' primes, and then doing the plate sorting/stacking.
Python 3: