Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.LinkedHashMap;
- import java.util.Map;
- import java.util.stream.Collectors;
- public class ActivityTrackerTests {
- public static void main(String[] args) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- int logsCount = Integer.parseInt(reader.readLine());
- // Date thedate = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(mystring);
- Map<Integer, Map<String, Double>> activityByMonth = new LinkedHashMap<>();
- for (int i = 0; i < logsCount; i++) {
- String[] logInput = reader.readLine().split(" ");
- String[] date = logInput[0].split("\\/");
- int month = Integer.parseInt(date[1]);
- String user = logInput[1];
- double distance = Double.parseDouble(logInput[2]);
- activityByMonth.putIfAbsent(month, new LinkedHashMap<>());
- activityByMonth.get(month).putIfAbsent(user, 0D);
- activityByMonth.get(month).put(user, activityByMonth.get(month).get(user) + distance);
- }
- activityByMonth.entrySet().stream()
- .sorted((m1, m2) -> m1.getKey().compareTo(m2.getKey()))
- .forEach(month -> System.out.println(month.getKey() + ": " +
- month.getValue().entrySet().stream()
- .sorted((u1, u2) -> Double.compare(u2.getValue(), u1.getValue()))
- .map(u -> String.format("%s(%.0f)",u.getKey(), u.getValue()))
- .collect(Collectors.joining(", "))
- ));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment