Advertisement
desislava_topuzakova

09. Pokemon Don't Go

Feb 10th, 2023
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1. package Lists_Exercise;
  2.  
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.stream.Collectors;
  7.  
  8. public class PokemonDontGo_09 {
  9. public static void main(String[] args) {
  10. Scanner scanner = new Scanner(System.in);
  11.  
  12. List<Integer> numbers = Arrays.stream(scanner.nextLine()
  13. .split("\\s+"))
  14. .map(Integer::parseInt)
  15. .collect(Collectors.toList()); // {4, 5, 3}
  16.  
  17. //повтаряме: въвеждаме индекс
  18. //стоп: нямаме елементи в списъка (size <= 0)
  19. //продължаваме: имаме елементи в списъка (size > 0)
  20.  
  21. int sum = 0; //сума на премахнатите елементи
  22.  
  23. while (numbers.size() > 0) {
  24. int index = Integer.parseInt(scanner.nextLine());
  25. //1. index < 0
  26. if (index < 0) {
  27. // {8, 5, 3, 6, 7, 8}
  28. //1. взимам кой ми е първия елемент в списъка
  29. int firstElement = numbers.get(0);
  30. //2. премахваме елемента от първото място -> сумиране
  31. numbers.remove(0);
  32. sum += firstElement;
  33. //3. взимам кой ми е последния елемент в списъка
  34. int lastElement = numbers.get(numbers.size() - 1);
  35. //4. сложим последния елемент на първо място
  36. numbers.add(0, lastElement);
  37. //5. модифицирам списъка спрямо премахнатия елемент
  38. modifyList(numbers, firstElement);
  39. }
  40. //2. index > последния индекс в списъка
  41. else if (index > numbers.size() - 1) {
  42. //1. взимаме последния елемент
  43. int lastElement = numbers.get(numbers.size() - 1);
  44. //2. премахваме последния елемент
  45. numbers.remove(numbers.size() - 1);
  46. sum += lastElement;
  47. //3. взимаме първия елемент
  48. int firstElement = numbers.get(0);
  49. //4. вмъкнем първия елемент на последно място
  50. numbers.add(firstElement);
  51. //5. модифицираме списъка спрямо премахнатия елемент
  52. modifyList(numbers, lastElement);
  53. }
  54. //3. index да е валиден -> index >= 0 и index <= последния
  55. else if (index >= 0 && index <= numbers.size() - 1) {
  56. //1. взимам кой е елемента на дадения индекс
  57. int removedNumber = numbers.get(index);
  58. sum += removedNumber;
  59. //2. премахваме елемента на дадения индекс
  60. numbers.remove(index);
  61. //3. модифицирам списъка спрямо премахнатото число
  62. modifyList(numbers, removedNumber);
  63. }
  64. }
  65.  
  66. System.out.println(sum);
  67. }
  68.  
  69. public static void modifyList(List<Integer> numbers, int removedNumber) {
  70. for (int index = 0; index <= numbers.size() - 1; index++) {
  71. int currentElement = numbers.get(index); //текущ елемент
  72. if (currentElement <= removedNumber) {
  73. currentElement += removedNumber;
  74. } else {
  75. currentElement -= removedNumber;
  76. }
  77.  
  78. numbers.set(index, currentElement);
  79. }
  80. }
  81. }
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement