코딩문제풀이/Baekjoon
[Java] 백준 20291번 : 파일
코딩하는 포메라니안
2023. 6. 7. 23:54
문제
https://www.acmicpc.net/problem/20291
20291번: 파일 정리
친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를
www.acmicpc.net
풀이 과정
TreeMap은 내부적으로 레드-블랙 트리 구조를 갖추고 있어, 정렬한 자료가 필요할 때 유용하다.
따로 key를 복사해서 정렬하지 않고, 값을 넣으면서 Entry자체를 정렬하는 것이다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Map<String, Integer> map = new TreeMap<>();
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
String input;
while(N-- > 0){
input = br.readLine();
String extension = input.substring(input.indexOf(".")+1);
map.put(extension, map.getOrDefault(extension, 0)+1);
}
for(Map.Entry<String, Integer> entry : map.entrySet()){
sb.append(entry.getKey()).append(" ")
.append(entry.getValue()).append("\n");
}
System.out.println(sb);
}
}