Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.List;
  3. import java.util.Scanner;
  4. import java.util.stream.Collectors;
  5.  
  6. public class TreasureHunt {
  7. public static void main(String[] args) {
  8. Scanner scanner = new Scanner(System.in);
  9.  
  10. List<String> treasure = Arrays.stream(scanner.nextLine().split("\\|")).collect(Collectors.toList());
  11.  
  12. String input = scanner.nextLine();
  13. while (!input.equals("Yohoho!")) {
  14.  
  15. String[] tokens = input.split("\\s+");
  16. String command = tokens[0];
  17. switch (command) {
  18. case "Loot": {
  19. for (int i = 1; i < tokens.length; i++) {
  20. if (!treasure.contains(tokens[i])) {
  21. treasure.add(0, tokens[i]);
  22. }
  23. }
  24. }
  25. break;
  26. case "Drop": {
  27. int index = Integer.parseInt(tokens[1]);
  28. if (isIndexValid(index, treasure)) {
  29. treasure.add(treasure.get(index));
  30. treasure.remove(index);
  31. }
  32. }
  33. break;
  34. case "Steal": {
  35. int count = Integer.parseInt(tokens[1]);
  36. int min = Math.min(count, treasure.size());
  37. List<String> stolenTreasure = treasure.stream().skip(treasure.size() - min)
  38. .collect(Collectors.toList());
  39. treasure = treasure.stream().limit(treasure.size() - min).collect(Collectors.toList());
  40. System.out.println(String.join(", ", stolenTreasure));
  41. }
  42. break;
  43. }
  44.  
  45. input = scanner.nextLine();
  46. }
  47.  
  48. if (treasure.size() > 0) {
  49. double avgTreasure = treasure.stream().mapToInt(String::length).average().getAsDouble();
  50. System.out.printf("Average treasure gain: %.2f pirate credits.", avgTreasure);
  51. } else {
  52. System.out.println("Failed treasure hunt.");
  53. }
  54. }
  55.  
  56. private static boolean isIndexValid(int index, List<String> treasure) {
  57. return index >= 0 && index < treasure.size();
  58. }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement