https://www.acmicpc.net/problem/9733
9733번: 꿀벌
각각의 일을 한 횟수와 비율을 공백으로 구분하여 출력한다. 출력은 {Re,Pt,Cc,Ea,Tb,Cm,Ex} 순서대로 하며, 비율은 소수점 둘째 자리까지 출력한다. 주어진 목록에 없는 일은 출력하지 않는다. 입력의
www.acmicpc.net
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
double total = 0;
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < 24; i++) {
String input = br.readLine();
if (input == null || input.isEmpty()) break;
StringTokenizer st = new StringTokenizer(input, " ");
while (st.hasMoreTokens()) {
String work = st.nextToken();
if ("Re".equals(work)) map.put("Re", map.getOrDefault("Re", 0) + 1);
else if ("Pt".equals(work)) map.put("Pt", map.getOrDefault("Pt", 0) + 1);
else if ("Cc".equals(work)) map.put("Cc", map.getOrDefault("Cc", 0) + 1);
else if ("Ea".equals(work)) map.put("Ea", map.getOrDefault("Ea", 0) + 1);
else if ("Tb".equals(work)) map.put("Tb", map.getOrDefault("Tb", 0) + 1);
else if ("Cm".equals(work)) map.put("Cm", map.getOrDefault("Cm", 0) + 1);
else if ("Ex".equals(work)) map.put("Ex", map.getOrDefault("Ex", 0) + 1);
total++;
}
}
sb.append("Re ").append(map.getOrDefault("Re", 0)).append(" ").append(String.format("%.2f", map.getOrDefault("Re", 0) / total)).append("\n");
sb.append("Pt ").append(map.getOrDefault("Pt", 0)).append(" ").append(String.format("%.2f", map.getOrDefault("Pt", 0) / total)).append("\n");
sb.append("Cc ").append(map.getOrDefault("Cc", 0)).append(" ").append(String.format("%.2f", map.getOrDefault("Cc", 0) / total)).append("\n");
sb.append("Ea ").append(map.getOrDefault("Ea", 0)).append(" ").append(String.format("%.2f", map.getOrDefault("Ea", 0) / total)).append("\n");
sb.append("Tb ").append(map.getOrDefault("Tb", 0)).append(" ").append(String.format("%.2f", map.getOrDefault("Tb", 0) / total)).append("\n");
sb.append("Cm ").append(map.getOrDefault("Cm", 0)).append(" ").append(String.format("%.2f", map.getOrDefault("Cm", 0) / total)).append("\n");
sb.append("Ex ").append(map.getOrDefault("Ex", 0)).append(" ").append(String.format("%.2f", map.getOrDefault("Ex", 0) / total)).append("\n");
sb.append("Total ").append((int) total).append(" 1.00").append("\n");
System.out.print(sb);
}
}
'OJ' 카테고리의 다른 글
[BOJ] 25497 기술 연계마스터 임스 (JAVA) (0) | 2023.07.04 |
---|---|
[BOJ] 1380 귀걸이 (JAVA) (0) | 2023.07.03 |
[BOJ] 11441 합 구하기 (JAVA) (0) | 2023.07.01 |
[BOJ] 9996 한국이 그리울 땐 서버에 접속하지 (JAVA) (0) | 2023.06.30 |
[BOJ] 16948 데스 나이트 (JAVA) (0) | 2023.06.29 |