Advertisement
Guest User

Untitled

a guest
Nov 30th, 2022
379
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.53 KB | None | 0 0
  1. import java.util.*;
  2. import java.util.regex.MatchResult;
  3. import java.util.regex.Matcher;
  4. import java.util.regex.Pattern;
  5. import java.util.stream.Collectors;
  6.  
  7. public class NetherRealms {
  8.     public static void main(String[] args) {
  9.         Scanner scanner = new Scanner(System.in);
  10.         List<String> daemons = Arrays.stream(scanner.nextLine().split(",\\s*"))
  11.                 .map(String::trim)
  12.                 .collect(Collectors.toList());
  13.  
  14.         Pattern healthPattern = Pattern.compile("[^-+*/.\\d]");
  15.         Pattern damagePattern = Pattern.compile("[-+]?\\d+(\\.\\d+)?");
  16.         Pattern damageModifiersPattern = Pattern.compile("[*/]");
  17.  
  18.         for (String daemonName : daemons) {
  19.             int daemonHealth = healthPattern.matcher(daemonName)
  20.                     .results()
  21.                     .mapToInt(m -> m.group().charAt(0))
  22.                     .sum();
  23.  
  24.             double daemonDamage = damagePattern.matcher(daemonName)
  25.                     .results()
  26.                     .map(MatchResult::group)
  27.                     .mapToDouble(Double::parseDouble)
  28.                     .sum();
  29.  
  30.             Matcher matcher = damageModifiersPattern.matcher(daemonName);
  31.             while (matcher.find()) {
  32.                 if (matcher.group().equals("*")) {
  33.                     daemonDamage *= 2.0;
  34.                 } else {
  35.                     daemonDamage /= 2.0;
  36.                 }
  37.             }
  38.  
  39.             System.out.printf("%s - %d health, %.2f damage%n", daemonName, daemonHealth, daemonDamage);
  40.         }
  41.     }
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement