문제

풀이
- 애너그램은 단어의 구성이 전부 똑같은 점을 이용함.
- 결과값을 저장할 dictionary를 선언 후, strs 배열을 돌면서 배열의 각 요소를 list로 변환 및 sort함수를 이용해 정렬해주고, 이를 다시 join함수를 통해 문자열로 바꿔줌.
- 바꿔준 결과값이 기존에 존재하면 dictionary에 집어넣는데, 여러개의 값을 한번에 집어넣기 위해 dictionary의 value를 list로 선언하여 추가함.
- value 값만 필요하므로 values함수를 사용하여 return함.
코드
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
if strs == [""] :
return [[""]]
else :
res = dict()
for s in strs :
tmp = ''.join(sorted(list(s)))
if tmp not in res.keys() :
res[tmp] = [s]
else :
t = res[tmp]
t.append(s)
res[tmp] = t
return sorted(list(res.values()))