Calculate Weekly Waste Totals - codepath/compsci_guides GitHub Wiki
Unit 4 Session 2 Advanced (Click for link to problem statements)
U-nderstand
Understand what the interviewer is asking for by using test cases and questions about the problem.
- Q: What is the goal of the problem?
- A: The goal is to calculate the total food waste for each day of the week and return the results as a dictionary.
- Q: What are the inputs?
- A: The input is a dictionary where each key is a day of the week, and the value is a list of integers representing the food waste (in kilograms) recorded on that day.
- Q: What are the outputs?
- A: The output is a dictionary where each key is a day of the week, and the value is the total food waste for that day.
- Q: How should the total waste for each day be calculated?
- A: For each day, sum the integers in the list associated with that day.
- Q: Are there any assumptions about the input?
- A: The dictionary is well-formed, with valid day names as keys and lists of non-negative integers as values.
P-lan
Plan the solution with appropriate visualizations and pseudocode.
General Idea: Iterate over each day in the input dictionary, sum the waste amounts for that day, and store the result in a new dictionary.
1) Initialize an empty dictionary `total_waste`.
2) Iterate over each `day, waste_list` pair in the `weekly_waste` dictionary:
a) Calculate the sum of the `waste_list`.
b) Store the sum in `total_waste` with `day` as the key.
3) Return `total_waste`.
**⚠️ Common Mistakes**
- Forgetting to correctly sum the values in the waste list, leading to inaccurate totals.
- Assuming that all days will have waste records, not handling empty lists or missing days.
- Misunderstanding the input format, which could result in incorrect processing of the waste data.
I-mplement
def calculate_weekly_waste_totals(weekly_waste):
# Calculate the total waste for each day
total_waste = {day: sum(waste) for day, waste in weekly_waste.items()}
return total_waste
Example Usage:
weekly_waste = {
'Monday': [5, 3, 7],
'Tuesday': [2, 4, 6],
'Wednesday': [8, 1],
'Thursday': [4, 5],
'Friday': [3, 2, 1],
'Saturday': [6],
'Sunday': [1, 2, 2]
}
print(calculate_weekly_waste_totals(weekly_waste))
# Output: {'Monday': 15, 'Tuesday': 12, 'Wednesday': 9, 'Thursday': 9, 'Friday': 6, 'Saturday': 6, 'Sunday': 5}