From 0d45ef4e144a319ccd4c913b8a9aa231d0c5201b Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Wed, 10 Sep 2025 20:02:25 -0400 Subject: [PATCH] Time: 33 ms (100%), Space: 19 MB (100%) - LeetHub --- .../1733-minimum-number-of-people-to-teach.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 1733-minimum-number-of-people-to-teach/1733-minimum-number-of-people-to-teach.py diff --git a/1733-minimum-number-of-people-to-teach/1733-minimum-number-of-people-to-teach.py b/1733-minimum-number-of-people-to-teach/1733-minimum-number-of-people-to-teach.py new file mode 100644 index 0000000..7e56529 --- /dev/null +++ b/1733-minimum-number-of-people-to-teach/1733-minimum-number-of-people-to-teach.py @@ -0,0 +1,35 @@ +class Solution(object): + def minimumTeachings(self, n, languages, friendships): + """ + :type n: int + :type languages: List[List[int]] + :type friendships: List[List[int]] + :rtype: int + """ + + uniquePplInOddFriendships = set() + langsInOddFriendships = [0] * n + for _p1, _p2 in friendships: + p1 = _p1 - 1 + p2 = _p2 - 1 + + langs = set(languages[p1] + languages[p2]) + + if len(langs) == len(languages[p1]) + len(languages[p2]): + if _p1 not in uniquePplInOddFriendships: + uniquePplInOddFriendships.add(_p1) + for l in languages[p1]: + langsInOddFriendships[l - 1] += 1 + + if _p2 not in uniquePplInOddFriendships: + uniquePplInOddFriendships.add(_p2) + for l in languages[p2]: + langsInOddFriendships[l - 1] += 1 + + + enumerated = list(enumerate(langsInOddFriendships)) + enumerated.sort(key=lambda x : x[1]) + maxKnownLang, numKnownBy = enumerated[-1] + + return len(uniquePplInOddFriendships) - numKnownBy +