import java.util.*;
// 파일 정리 - 정렬 - S3
public class ex20291 {
static int n;
static String[] arr;
static String ex="";
static boolean flag=false;
public static void solution(){
HashMap<String,Integer> map = new HashMap<>();
for(String str : arr){
char[] ctr = str.toCharArray();
for(int i=0; i<ctr.length; i++){
if(ctr[i]=='.') {
flag=true;
continue;
}
if(flag) ex+=ctr[i];
}
flag=false;
map.put(ex,map.getOrDefault(ex,0)+1);
ex="";
}
//map key값 오름차순 정렬
ArrayList<String> keySet = new ArrayList<>(map.keySet());
Collections.sort(keySet);
for(String str : keySet){
System.out.println(str + " " + map.get(str));
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
arr = new String[n];
for(int i=0; i<n; i++){
arr[i] = sc.next();
}
solution();
}
}
이 문제는 파일 확장자 수를 세고 확장자 수가 여러개 일때는 사전순으로 정렬해서 출력하는 문제다. '.'이 나오면 flag를 true로 바꿔주고 true일때는 문자를 전부 ex라는 String 변수에 담는다. 그러고 map에 담아주고 초기화!!
map을 사전순으로 정렬하는 방법은 map.keySet() 을 ArrayList에 담아준다.
그리고 Collections.sort()를 해준다.