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은 어느 것과도 일치하지 않습니다. 첫 번째 단어를 기준으로 그룹을 나열하면 apple, enlist, notes 순입니다.

lock icon제출 시 숨은 테스트 +15개

challenge icon

후속 질문

단어가 26개의 소문자 대신 모든 유니코드 문자를 포함할 수 있다고 가정해 보세요. 두 키 중 정렬된 문자와 문자 개수 중 어느 것이 여전히 작동하며, 그 키를 어떻게 바꾸시겠어요?

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

케이스 1

케이스 2

케이스 3

입력

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

기대값

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