20291 파일 정리

DONGJIN IM·2022년 3월 7일
0

코딩 테스트

목록 보기
17/137

문제 이해

파일의 개수가 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);
	}
}

결과

profile
개념부터 확실히!

0개의 댓글

관련 채용 정보