파일 정리 - 20291

Seongjin Jo·2023년 6월 6일
0

Baekjoon

목록 보기
36/51

문제

풀이

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()를 해준다.

0개의 댓글