TIP102 Unit 1 Session 1 Advanced (Click for link to problem statements)
Understand what the interviewer is asking for by using test cases and questions about the problem.
Q: What is the input to the function?
vegetable_patch where each element represents a spot in the garden.Q: What is the expected output of the function?
'c') that are ready to harvest in the vegetable patch.Q: How are the carrots represented in the matrix?
'c'.Q: What should the function return if there are no carrots ready to harvest?
0 if there are no carrots ('c') in the matrix.Q: Can the matrix be empty or have rows of varying lengths?
The function print_catchphrase() should take a single parameter, character, and print the corresponding catchphrase based on the given character. If the character does not match any in the table, it should print a default message.
HAPPY CASE
Example 1:
Input: 
[ 
	['x', 'c', 'x'],
	['x', 'x', 'x'],
	['x', 'c', 'c'],
	['c', 'c', 'c']
]
Output: 6
Explanation: vegetable_patch[0][1], vegetable_patch[2][1], vegetable_patch[2][2], vegetable_patch[3][0], vegetable_patch[3][1], and vegetable_patch[3][2] all have value 'c'
Example 2:
Input: 
[ 
	['x', 'x', 'x'],
	['x', 'x', 'x'],
	['x', 'x', 'x'],
	['x', 'x', 'x']
]
Output: 0
Explanation: There are no 'c' in the vegetable patch.
EDGE CASE
If the matrix is empty, the function should return 0.
Example: []
Plan the solution with appropriate visualizations and pseudocode.
General Idea: Traverse the 2D matrix vegetable_patch to count the number of carrots (represented by the character 'c'). Use a nested loop to iterate over each row and each column in the matrix, checking each element for the presence of a carrot.
1) Initialize a counter `carrot_count` to keep track of the number of carrots.
2) Get the number of rows (`n`) in the matrix and the number of columns (`m`) in each row.
3) Iterate over each row in the matrix using a loop variable `row`.
4) For each row, iterate over each column using a loop variable `col`.
5) Check if the element at position `[row][col]` is `'c'`.
6) If it is, increment the `carrot_count`.
7) After all rows and columns have been checked, return the value of `carrot_count`.⚠️ Common Mistakes
⚠️ Common Mistakes
Implement the code to solve the algorithm.
def harvest(vegetable_patch):
    # Initialize the carrot counter
    carrot_count = 0
    
    # Get the number of rows (n) and columns (m)
    n = len(vegetable_patch)
    m = len(vegetable_patch[0])
    
    # Traverse the 2D matrix
    for row in range(n):
        for col in range(m):
            # Check if the current element is 'c'
            if vegetable_patch[row][col] == 'c':
                # Increment the carrot counter
                carrot_count += 1
    
    # Return the total number of carrots
    return carrot_count