PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/Coding & Algorithms/DoorDash

Identify members lacking specialty coverage

Last updated: Mar 29, 2026

Quick Overview

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.

  • medium
  • DoorDash
  • Coding & Algorithms
  • Software Engineer

Identify members lacking specialty coverage

Company: DoorDash

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: medium

Interview Round: Onsite

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.

Related Interview Questions

  • Maximize Chef Assignment Profit - DoorDash (medium)
  • Compute Courier Delivery Pay - DoorDash (easy)
  • Compute Nearest Destination Distances - DoorDash (easy)
  • Count changed nodes between two menu trees - DoorDash (hard)
  • Calculate Daily Driver Pay - DoorDash (hard)
DoorDash logo
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\text{distance} = \sqrt{(x1 - x2)^2 + (y1 - y2)^2}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 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

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 = (2−1)2+(3−2)2=2≈1.41\sqrt{(2-1)^2 + (3-2)^2} = \sqrt{2} \approx 1.41(2−1)2+(3−2)2​=2​≈1.41 ≤ 5
  • Member 101 to provider 2 (Dermatology):
    • distance = (2−3)2+(3−4)2=2≈1.41\sqrt{(2-3)^2 + (3-4)^2} = \sqrt{2} \approx 1.41(2−3)2+(3−4)2​=2​≈1.41 ≤ 5
  • Member 102 to provider 1 (Cardiology):
    • distance = (10−1)2+(10−2)2=145≈12.04\sqrt{(10-1)^2 + (10-2)^2} = \sqrt{145} \approx 12.04(10−1)2+(10−2)2​=145​≈12.04 > 5

So member 101 has adequate coverage for all required specialties, but member 102 does not.

Expected output:

[102]

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More Coding & Algorithms•More DoorDash•More Software Engineer•DoorDash Software Engineer•DoorDash Coding & Algorithms•Software Engineer Coding & Algorithms
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.