Hi there,
I am confused why I am getting this error given that the solution has the sorted() method being passed 2 args?
Traceback (most recent call last):
File "/usercode/./__edu__exec.py", line 30, in <module>
actual_output = user_function(*input)
File "/usercode/main.py", line 11, in least_time
sorted_task_freqs = {task: freq for task, freq in sorted(task_freqs.items(), lambda x: x[1])}
TypeError: sorted expected 1 argument, got 2
Here is my code:
from collections import defaultdict
def least_time(tasks, n):
# count and store frequencies of tasks
task_freqs = defaultdict(int)
for task in tasks:
task_freqs[task] += 1
num_unique_tasks = len(task_freqs)
# sort by frequencies (values)
sorted_task_freqs = {task: freq for task, freq in sorted(task_freqs.items(), lambda x: x[1])}
# start scheduling tasks in desc order & compute idle time
total_idle_time = 0
num_tasks_left = len(tasks)
while num_tasks_left > 0:
idle_time = n + 1 # add 1 to account for the first task having to be completed first
for i in range(num_unique_tasks):
if sorted_task_freqs[i] > 0:
sorted_task_freqs[i] -= 1
idle_time -= 1
num_tasks_left -= 1
else:
break
if num_tasks_left > 0:
total_idle_time += idle_time
# total time = sum(num of tasks + idle time)
return len(tasks) + total_idle_time
----
Course: https://www.educative.io/courses/grokking-coding-interview-patterns-python
Lesson: https://www.educative.io/courses/grokking-coding-interview-patterns-python/task-scheduler