-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path16934_time_over.py
More file actions
38 lines (28 loc) Β· 884 Bytes
/
16934_time_over.py
File metadata and controls
38 lines (28 loc) Β· 884 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
N = int(input())
from collections import defaultdict, deque
usernames = []
for _ in range(N) :
usernames.append(input().strip())
dic = {}
name_cnt = defaultdict(int)
name_lst = defaultdict(list)
for name in usernames :
name_cnt[name] += 1
name_lst[name[0]].append(name)
#λκ°μ μ΄λ¦μ΄ λλ² μ΄μ λμ€λ©΄ λ€μ μ«μ λΆμ¬μ μ§ν
if name_cnt[name] > 1 :
dic[name+str(name_cnt[name])] = name
continue
# μμ΄ κ°μ μ΄λ¦μ΄ μλ κ²½μ°
if len(name_lst[name[0]] )== 1 :
dic[name[0]] = name
continue
name_set = set(name_lst[name[0]])
name_set.remove(name)
i = 0
while name_set and i < len(name):
name_set = {n for n in name_set if len(n) >= i+1 and n[i] == name[i]}
i += 1
answer = name[:i]
dic[name[:i]] = name
print(answer)