자바/알고리즘
[알고리즘] 생태학
OverTheHorizon3410
2023. 9. 24. 22:01
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