애너그램 그룹 만들기
두 단어가 같은 문자들을 같은 개수만큼 포함하면 서로 애너그램이라고 한다. 단어 리스트에서 서로 애너그램인 단어들을 같은 그룹으로 묶어 2차원 리스트로 반환하는 함수 group_anagrams를 작성하시오. 각 그룹 안의 단어는 사전순으로 정렬하고, 그룹들은 각 그룹의 첫 번째 단어를 기준으로 사전순 정렬한다. 같은 단어가 여러 번 주어지면 그 횟수만큼 결과에 포함한다.
함수 원형은 주어지지 않는다. 설명과 아래의 호출 코드를 보고 함수의 매개변수와 반환값을 직접 설계한다.
함수를 사용하는 코드
작성한 함수는 아래 코드와 함께 실행된다.
n = int(input())
words = [input() for _ in range(n)]
result = group_anagrams(words)
for group in result:
print(*group)
print(type(result))
위 코드가 정상적으로 동작하도록 함수를 직접 정의한다. 제출할 때는 작성한 함수의 정의 전체만 제출한다.
입력
첫째 줄에 단어 수 n이 주어진다. 다음 n개 줄에 알파벳 소문자로 이루어진 단어가 하나씩 주어진다.
- \(1 \le n \le 1,000\)
- 각 단어의 길이는 \(1\) 이상 \(100\) 이하이다.
출력
각 애너그램 그룹을 한 줄에 출력한다. 함수는 정렬 규칙을 만족하는 2차원 list를 반환해야 한다.
마지막 줄에는 함수가 반환한 값의 자료형을 출력한다.
예제 입력 1
6
eat
tea
tan
ate
nat
bat
예제 출력 1
ate eat tea
bat
nat tan
<class 'list'>
예제 입력 2
3
ab
ba
abc
예제 출력 2
ab ba
abc
<class 'list'>
코멘트