문자열 배열을 받아 애너그램 단위로 그룹핑하라.
애너그램은 문자열을 재배열해서 다른 문자로 만드는 것이다. 문제에서 말하는 애너그램 단위는 문자열 위치를 재배열하면 같은 문자가 되는 그룹들을 말하는 것이다.
먼저, 문자열을 정렬하여 딕셔너리 key로 생성 후 값을 빈 리스트로 초기화한다.
for s in strs:
ana = list(s)
ana.sort()
ana = ''.join(ana)
if result.get(ana) == None:
result[ana] = []
그 다음 원래 문자열을 해당 키의 배열에 추가한다.
result[ana].append(s)
전체 코드는 다음과 같다.
class Solution:
def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
result = {}
for s in strs:
ana = list(s)
ana.sort()
ana = ''.join(ana)
if result.get(ana) == None:
result[ana] = []
result[ana].append(s)
return list(result.values())
'코딩테스트 > 알고리즘' 카테고리의 다른 글
[Q. 07] 두 수의 합 (0) | 2023.03.20 |
---|---|
[Q. 06] 가장 긴 팰린드롬 부분 문자열 (0) | 2023.03.16 |
[Q. 04] 가장 흔한 단어 (0) | 2023.03.15 |
[Q. 03] 로그 파일 재정렬 (0) | 2023.03.15 |
[Q. 02] 문자열 뒤집기 (0) | 2023.03.15 |