Skip to content

Commit 79b64a2

Browse files
authored
Refine comments and time complexity in Accounts Merge
Updated comments and time complexity analysis in the code.
1 parent abde96d commit 79b64a2

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#
2+
3+
'''
4+
1. 아이디어 :
5+
dictionary 하나로는 같은 key가 존재하여 관리가 안됩니다.
6+
key: [set1, set2, ...]식으로 관리를 합니다.
7+
8+
2. 시간복잡도 :
9+
O(1000 * (10 + 1000))
10+
11+
3. 자료구조/알고리즘 :
12+
dict, set
13+
14+
'''
15+
from collections import defaultdict
16+
class Solution:
17+
def accountsMerge(self, accounts: List[List[str]]) -> List[List[str]]:
18+
map = defaultdict(list)
19+
20+
for account in accounts:
21+
name = account[0]
22+
emails = set(account[1:])
23+
24+
overlap_set = []
25+
26+
for email_set in map[name]:
27+
if emails & email_set:
28+
overlap_set.append(email_set)
29+
30+
if not overlap_set:
31+
map[name].append(emails)
32+
continue
33+
34+
for email_set in overlap_set:
35+
emails.update(email_set)
36+
map[name].remove(email_set)
37+
38+
map[name].append(emails)
39+
40+
ans = []
41+
for name, email_sets in map.items():
42+
for email_set in email_sets:
43+
ans.append([name] + sorted(email_set))
44+
45+
return ans
46+

0 commit comments

Comments
 (0)