package org.example.생태학;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.SortedMap;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
try (
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
) {
SortedMap<String, Integer> treeMap = new TreeMap<>();
int count = 0;
while (true) {
String tree = br.readLine();
if (tree == null || tree.isBlank()) {
break;
}
count++;
treeMap.put(tree, treeMap.getOrDefault(tree, 0) + 1);
}
for (String tree : treeMap.keySet()) {
bw.write(tree + " " + String.format("%.4f", ((double) treeMap.get(tree) / count) * 100));
bw.newLine();
}
bw.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 별도 클래스 구성은 하지 않았다.
- 필요한것
- 나무의 각 종류의 빈도를 저장할 map
- 출력순서 → abc~ 오름차순
- 총 나무의 개수
기억해야할것
SortedMap ⇒ TreeMap
SortedMap
- 정의
Map
인터페이스의 확장이며
- 키가 순서대로 유지되는 맵임
- 사용
SortedMap<String, Integer> map = new TreeMap<>((s1, s2) -> s1.length() - s2.length());
- 위와 같이 별도 Comparator 를 람다식으로 정의하여 키의 정렬조건을 줄 수도 있고
Uploaded by N2T
'자바 > 알고리즘' 카테고리의 다른 글
[알고리즘] 요격 시스템 (0) | 2023.09.25 |
---|---|
[알고리즘] 두 스티커 (0) | 2023.09.24 |
[알고리즘] __**주사위 놀이하는 함수**__ (0) | 2023.09.23 |
[알고리즘] 회전하는큐 (0) | 2023.09.12 |
[알고리즘] four squares (0) | 2023.09.10 |