Select the request whose response time is currently the lowest.
Delete that request together with its present immediate neighbours on the left and right, whenever those neighbours remain.
Keep repeating until the list is empty.
Return how many deletion rounds are required.
Function signature: deletionRounds(responseTimes).
Output: an integer containing the number of deletion rounds.
If multiple remaining requests have the same lowest response time, select the leftmost one.
Notes
A related description covers the same pattern of repeatedly selecting the smallest response time and removing adjacent items; another outlines a similarly greedy hammer-style removal process with fewer specifics.
Preparation
Check increasing or decreasing arrays, repeated response times, a single-element array, and scenarios in which both former neighbours were eliminated during earlier cycles.