Menu
CoddyTech

Group Anagrams

보통해싱정렬python iconjava iconcpp iconc iconjs icon+10

단어 목록 strs가 주어집니다. 두 단어는 한 단어의 글자를 각각 같은 횟수만큼 사용해 재배열한 것이 다른 단어일 때 애너그램입니다. 모든 단어를 해당하는 애너그램과 함께 그룹으로 묶고, 각 그룹마다 문자열 하나를 반환하세요. 그룹의 단어들은 알파벳순으로 정렬하고 공백 하나로 연결합니다. 첫 번째 단어를 기준으로 그룹을 알파벳순으로 정렬하세요.

중복된 단어는 해당 그룹에 두 번 나열하고, 애너그램이 없는 단어는 하나로 이루어진 그룹을 만듭니다. 알파벳순은 사전식 순서를 뜻합니다. aab는 ab보다 앞에 오고, ab는 abc보다 앞에 옵니다.

함수

groupAnagrams(strs: string-array) → string-array
strsstring-array
그룹화할 단어, 소문자만
반환값string-array
그룹당 하나의 문자열: 각 그룹의 단어를 정렬해 공백으로 연결하고, 첫 번째 단어를 기준으로 그룹을 정렬합니다

제약 조건

  • 1 ≤ strs.length ≤ 4000
  • 1 ≤ strs[i].length ≤ 8
  • 모든 단어에는 소문자 영어 문자만 포함됩니다.

예제

입력
strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]
출력
["apple", "enlist listen silent", "notes onset stone tones"]
설명
enlist, listen, silent는 각각 e, i, l, n, s, t를 한 번씩 사용합니다. notes, onset, stone, tones는 e, n, o, s, t를 공유합니다. apple은 아무것과도 일치하지 않으며, 첫 단어 기준으로는 선두입니다.
challenge icon

후속 질문

단어에 어떤 유니코드 문자든 들어갈 수 있다면, 정렬된 글자 또는 글자 수 중 어떤 키가 여전히 작동할까요? 그리고 그 키에서 무엇을 바꾸면 될까요?

코드 초기화
def groupAnagrams(strs):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자

strs = ["listen", "stone", "silent", "notes", "enlist", "onset", "tones", "apple"]

예상 출력

["apple", "enlist listen silent", "notes onset stone tones"]