This question evaluates proficiency in spatial reasoning, Euclidean distance computation, and set-based filtering to determine whether members have required specialty access, and it tests algorithmic implementation and data-structure usage as a practical application within the Coding & Algorithms domain.
Oscar wants to ensure that every insurance member has adequate access to in-network healthcare providers within a reasonable travel distance.
You are given:
- A list of **providers**, where each provider has:
- `id`: an integer provider ID
- `specialty`: a string (e.g., `"Cardiology"`, `"Dermatology"`)
- `location`: a 2D coordinate `(x, y)` representing the provider’s location
- A list of **members**, where each member has:
- `id`: an integer member ID
- `location`: a 2D coordinate `(x, y)` representing the member’s location
- `required_specialties`: a list of strings indicating the specialties this member needs
- A number `max_distance` (float or integer), which is the maximum allowed travel distance.
Assume **Euclidean distance** between two points `(x1, y1)` and `(x2, y2)`:
\[
\text{distance} = \sqrt{(x1 - x2)^2 + (y1 - y2)^2}
\]
A member has **adequate coverage** if, for **every** specialty in their `required_specialties`, there exists **at least one provider** with that specialty whose distance from the member is **less than or equal to** `max_distance`.
A member **lacks adequate coverage** if there is **at least one required specialty** for which no such provider exists within `max_distance`.
**Task**:
Write a function that, given `providers`, `members`, and `max_distance`, returns a list of the IDs of all members who **lack adequate coverage**.
You may return the member IDs in any order.
---
**Example**
```python
providers = [
{"id": 1, "specialty": "Cardiology", "location": (1, 2)},
{"id": 2, "specialty": "Dermatology", "location": (3, 4)},
]
members = [
{"id": 101, "location": (2, 3), "required_specialties": ["Cardiology", "Dermatology"]},
{"id": 102, "location": (10, 10), "required_specialties": ["Cardiology"]},
]
max_distance = 5
```
Distances:
- Member 101 to provider 1 (Cardiology):
- distance = \(\sqrt{(2-1)^2 + (3-2)^2} = \sqrt{2} \approx 1.41\) ≤ 5
- Member 101 to provider 2 (Dermatology):
- distance = \(\sqrt{(2-3)^2 + (3-4)^2} = \sqrt{2} \approx 1.41\) ≤ 5
- Member 102 to provider 1 (Cardiology):
- distance = \(\sqrt{(10-1)^2 + (10-2)^2} = \sqrt{145} \approx 12.04\) > 5
So member 101 has adequate coverage for all required specialties, but member 102 does not.
**Expected output**:
```python
[102]
```
Quick Answer: This question evaluates proficiency in spatial reasoning, Euclidean distance computation, and set-based filtering to determine whether members have required specialty access, and it tests algorithmic implementation and data-structure usage as a practical application within the Coding & Algorithms domain.
DoorDash
Jul 28, 2025, 12:00 AM
Software Engineer
Onsite
Coding & Algorithms
4
0
Oscar wants to ensure that every insurance member has adequate access to in-network healthcare providers within a reasonable travel distance.
You are given:
A list of
providers
, where each provider has:
id
: an integer provider ID
specialty
: a string (e.g.,
"Cardiology"
,
"Dermatology"
)
location
: a 2D coordinate
(x, y)
representing the provider’s location
A list of
members
, where each member has:
id
: an integer member ID
location
: a 2D coordinate
(x, y)
representing the member’s location
required_specialties
: a list of strings indicating the specialties this member needs
A number
max_distance
(float or integer), which is the maximum allowed travel distance.
Assume Euclidean distance between two points (x1, y1) and (x2, y2):
distance=(x1−x2)2+(y1−y2)2
A member has adequate coverage if, for every specialty in their required_specialties, there exists at least one provider with that specialty whose distance from the member is less than or equal tomax_distance.
A member lacks adequate coverage if there is at least one required specialty for which no such provider exists within max_distance.
Task:
Write a function that, given providers, members, and max_distance, returns a list of the IDs of all members who lack adequate coverage.