[백준] 4358 생태학
트라이 쓰는 문제라는데 잘 몰라서 그냥 풀어따… 나중에 트라이 배우면 다시 풀기
import java.util.*;
import java.io.*;
public class Main{
public static void main(String []args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
List<String> list = new ArrayList<>();
String s = br.readLine();
if( s == null ){ // 예외처리 - 빈 문자
return;
}
while( s != null ){ // 주어진 나무 리스트에 추가하기
list.add(s);
s = br.readLine();
}
Collections.sort(list); // 정렬
int n = list.size();
int cnt = 1;
StringBuilder sb = new StringBuilder();
for(int i = 1 ; i < n ; i++){
if(list.get(i).equals(list.get(i-1))) cnt++;
else{
// 소숫점 아래 넷째자리까지 나타내라구 해썽...
double p = Math.round(cnt*1000000.0/n)/10000.0;
sb.append(list.get(i-1) + " " + String.format("%.4f", p) + "\n");
cnt = 1;
}
}
// 마지막 원소
double p = Math.round(cnt*1000000.0/n)/10000.0;
sb.append(list.get(n-1) + " " + String.format("%.4f", p));
System.out.println(sb); // 출력
}
}
Comments