Code RoomStaff with team budgets
MediumPrep Room Coding #5029

Staff with team budgets

CodingAlgorithms & data structuresMid–Senior~9 min

Given `staff` with columns `name`, `team`, `salary`, `hired` and `manager`, and `budgets` with columns `team` and `budget`, return every employee with their `budget`, using null where the team has no budget row. Return `name` and `budget`, sorted by `name` ascending.

Implement
budget_or_null(staff: dataframe, budgets: dataframe) → dataframe
Examples
in[{"__df__":[{"name":"Ada","team":"eng","hired":"2021-03-01","salary":120,"manager":"Grace"},{"name":"Grace","team":"eng","hired":"2019-06-15","salary":150,"manager":null},{"name":"Linus","team":"eng","hired":"2022-01-10","salary":95,"manager":"Grace"},{"name":"Mel","team":"sales","hired":"2020-11-05","salary":80,"manager":"Kay"},{"name":"Kay","team":"sales","hired":"2018-02-20","salary":110,"manager":null},{"name":"Ivan","team":"sales","hired":"2023-07-01","salary":80,"manager":"Kay"},{"name":"Jean","team":"design","hired":"2021-09-30","salary":105,"manager":null},{"name":"Nia","team":"design","hired":"2022-05-04","salary":140,"manager":"Jean"},{"name":"Omar","team":"sales","hired":"2021-01-08","salary":125,"manager":"Kay"}]},{"__df__":[{"team":"eng","budget":900},{"team":"sales","budget":400},{"team":"ops","budget":250}]}]out[{"name":"Ada","budget":900},{"name":"Grace","budget":900},{"name":"Ivan","budget":400},{"name":"Jean","budget":null},{"name":"Kay","budget":400},{"name":"Linus","budget":900},{"name":"Mel","budget":400},{"name":"Nia","budget":null},{"name":"Omar","budget":400}]
What a strong answer looks like

State your approach and its time/space complexity out loud before you optimize. Handle the edge cases (empty input, duplicates, overflow), and say why you chose this over the brute force. Green tests are the floor, not the grade.

0:00 of about 9 min
InputExpectedGot
[{"__df__":[{"name":"Ada","team":"eng","hired":"2021-03-01","salary":120,"manager":"Grace"},{"name":"Grace","team":"eng","hired":"2019-06-15","salary":150,"manager":null},{"name":"Linus","team":"eng","hired":"2022-01-10","salary":95,"manager":"Grace"},{"name":"Mel","team":"sales","hired":"2020-11-05","salary":80,"manager":"Kay"},{"name":"Kay","team":"sales","hired":"2018-02-20","salary":110,"manager":null},{"name":"Ivan","team":"sales","hired":"2023-07-01","salary":80,"manager":"Kay"},{"name":"Jean","team":"design","hired":"2021-09-30","salary":105,"manager":null},{"name":"Nia","team":"design","hired":"2022-05-04","salary":140,"manager":"Jean"},{"name":"Omar","team":"sales","hired":"2021-01-08","salary":125,"manager":"Kay"}]},{"__df__":[{"team":"eng","budget":900},{"team":"sales","budget":400},{"team":"ops","budget":250}]}][{"name":"Ada","budget":900},{"name":"Grace","budget":900},{"name":"Ivan","budget":400},{"name":"Jean","budget":null},{"name":"Kay","budget":400},{"name":"Linus","budget":900},{"name":"Mel","budget":400},{"name":"Nia","budget":null},{"name":"Omar","budget":400}]not run yetsample