시간&메모리 제한
문제
입력&출력
문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashMap;
public class Back_4358 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
HashMap<String, Integer> hm = new HashMap<String, Integer>();
String tmp;
int sum=0;
while(true) {
tmp = br.readLine();
if(tmp == null || tmp.length()==0) {
break;
}
sum++;
hm.put(tmp, hm.getOrDefault(tmp, 0)+1);
}
Object[] obs = hm.keySet().toArray();
Arrays.sort(obs);
StringBuilder sb = new StringBuilder();
for(Object o : obs) {
String Str = (String) o;
int count = hm.get(Str);
double per = (double)(count * 100.0) / sum;
sb.append(Str + " " + String.format("%.4f", per) + "\n"); // 소수점 4번 째 자리까지 출력
}
System.out.println(sb.toString());
}
}
※ 내 생각
이 문제는 문자열을 이용하여 해결하는 문제입니다.
먼저 문자열을 키로 한 Hashmap을 이용하고 이미 값이 있으면 value를 증가 시키기 위해
getOrDefault를 사용합니다.
또한 정렬을 진행해 줍니다.
그 후에 계산을 통해서 원하는 값을 얻어주면 됩니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_11723 집합(자바) / 구현 (0) | 2021.10.08 |
---|---|
백준_16198 에너지 모으기(자바) / 백트래킹 (0) | 2021.10.07 |
백준_1713 후보 추천하기(자바) / 시뮬레이션 (0) | 2021.10.05 |
[프로그래머스] 가장 큰 수 (자바) / 정렬 (0) | 2021.10.03 |
백준_2824 최대공약수(자바) / 구현 & 수학 (0) | 2021.10.02 |