7012 : 아나그램 그룹핑
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 1
•통과: 1
•만든사람: suakii
문제 설명
소문자 단어들이 주어질 때, 단어들을 서로 애너그램(Anagram)인 그룹끼리 묶어서 출력하는 프로그램을 작성하시오.
출력 정렬 기준은 다음과 같다.
1. 각 아나그램 그룹 내부의 단어들은 사전 순서(오름차순)로 정렬한다.
2. 그룹 간의 정렬 순서는 각 그룹의 사전 순 첫 번째 단어를 기준으로 정렬한다.
3. 그룹과 그룹 사이는 한 줄의 빈 줄(`\n`)로 구분하여 출력한다.
[제약 조건]
• 단어 수 $N$: $1 \le N \le 200$
• 각 단어의 길이: $1 \le |S| \le 20$ (소문자 알파벳)
[제약 조건]
• 단어 수 $N$: $1 \le N \le 200$
• 각 단어의 길이: $1 \le |S| \le 20$ (소문자 알파벳)
입력 설명
첫째 줄에 단어의 개수 주어진다. 둘째 줄부터 줄에 걸쳐 소문자 영단어가 한 줄에 하나씩 주어진다. ($1 \le N \le 200$, 각 단어의 길이 $\le 20$)
출력 설명
조건에 맞춰 그룹별로 정렬한 단어들을 출력한다. 그룹 사이는 빈 줄로 구분한다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
6
eat
tea
tan
ate
nat
bat
출력 예시
COPY
복사되었습니다!
복사되었습니다!
ate
eat
tea
bat
nat
tan
도움
각 단어의 알파벳을 정렬한 문자열을 딕셔너리의 키로 삼아 그룹화하면 해결하기 쉽다.