파일의 개수가 N개 주어진다.
이 때 X.Y형태의 파일이 존재하고, Y는 확장자 명을 의미한다.
존재하는 확장자 이름을 사전순으로 출력하면 된다.
이 때, 해당 확장자를 가지는 파일이 총 몇 개 존재하는지도 출력해야 한다.
값을 입력받아 확장자만 Array에 저장한다. 이후 Array를 Sorting한다.
Array를 Search하면서 이전에 확인했던 값과 동일할 경우 크기를 1증가시켜주고, 동일하지 않을 경우 이전에 확인했던 값을 출력한 후 이전까지 저장했던 크기를 출력한 후 초기화시켜준다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
StringBuilder sb = new StringBuilder();
String[] arr = new String[N];
for(int i = 0 ;i<N;i++) {
arr[i] = sc.next().split("\\.")[1];
// 입력을 받고 확장자 값만 Array에 저장하는 과정
}
Arrays.sort(arr); // Sorting 과정
String tmp = arr[0]; // 이전에 확인했던 값
int size = 1; // 이전에 확인했던 값이 몇 번 중복되어 나오는가
for(int i =1;i<N;i++) {
if(!tmp.equals(arr[i])) {
// 이전에 확인했던 값과 다르다.
// 따라서 이전까지 확인했던 값(tmp)와 중복된 개수(size)를
// 출력한다.
// 마지막으로 tmp와 size를 새롭게 초기화한다.
sb.append(tmp+" "+size+"\n");
tmp = arr[i];
size = 1;
}
else {
// 이전에 확인했던 값과 중복이기 때문에 size를 1 증가 시킨다.
size++;
}
}
sb.append(tmp+" "+size);
// 마지막에 확인했던 확장자는 아직 출력 되지 않았으므로 출력한다.
System.out.println(sb);
}
}