def get_prefix(strs):
answer = ''
if strs == []:
return answer
check = min(strs)
final = []
if not check:
return answer
strs.sort(key=lambda x:len(x))
for i in range(1, len(strs)):
answer = ''
for j in range(len(check)):
if check[j] == strs[i][j]:
answer += check[j]
else:
break
final.append(answer)
return min(final)
문제를 봤을때 어렵지 않은 문제라고 생각했다. 글자를 한개씩 비교만 하면 된다고 생각 했는데 [] 일때와 ['abc','abd',''] 와 같은 경우도 같이 생각해야 했다. 앞부분에서 먼저 strs = [], strs = ['abc','abcd',''] 같은 경우를 먼저 판단해주고 그다음에 strs에 담긴 문자들을 짧은 길이 순으로 정렬 시킨다. 그리고 가장 길이가 짧은 문자길이 만큼 for 문을 for 문 안에 중첩으로 넣는다. 그렇게 하나씩 제일 짧은 길이의 문자랑 한개씩 비교하면서 같은 문자들을 final에 append 시킨다. 그렇게 len(strs) 만큼 반복시키고 난 후에 final 리스트에 담긴 문자들중 가장 짧은 길이의 문자를 리턴하면 된다.