Advertisement
Hey_Donny

DoctorOffice

Jun 14th, 2022
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.List;
  7.  
  8. public class DoctorOffice {
  9. private static final List<String> queue = new ArrayList<>();
  10. private static final HashMap<String, Integer> names = new HashMap<>();
  11. private static final StringBuilder builder = new StringBuilder();
  12. private static final String SUCCESS = "OK\n";
  13. private static final String ERROR = "Error\n";
  14.  
  15. public static void main(String[] args) throws IOException {
  16. BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  17. String input = in.readLine();
  18.  
  19. while (!input.equals("End")) {
  20. String[] commandParameters = input.split(" ");
  21.  
  22. switch (commandParameters[0]) {
  23. case "Append":
  24. append(commandParameters);
  25. break;
  26. case "Insert":
  27. insert(commandParameters);
  28. break;
  29. case "Find":
  30. find(commandParameters);
  31. break;
  32. case "Examine":
  33. examine(commandParameters);
  34. break;
  35. }
  36. input = in.readLine();
  37. }
  38. System.out.println(builder);
  39. }
  40.  
  41. private static void find(String[] commandParameters) {
  42. String nameToFind = commandParameters[1];
  43.  
  44. if (names.containsKey(nameToFind)) {
  45. builder.append(names.get(nameToFind).toString());
  46. } else {
  47. builder.append("0");
  48. }
  49. builder.append("\n");
  50. }
  51.  
  52. private static void examine(String[] commandParameters) {
  53. int numberOFPeople = Integer.parseInt(commandParameters[1]);
  54.  
  55. if (numberOFPeople <= queue.size()) {
  56. StringBuilder sb = new StringBuilder();
  57.  
  58. int i = 0;
  59. while (i < numberOFPeople) {
  60. sb.append(String.format("%s ", queue.get(0)));
  61. names.put(queue.get(0), names.get(queue.get(0)) - 1);
  62. queue.remove(0);
  63. i++;
  64. }
  65.  
  66. sb.setLength(sb.length() - 1);
  67. builder.append(sb);
  68.  
  69. } else {
  70. builder.append("Error");
  71. }
  72. builder.append("\n");
  73. }
  74.  
  75. private static void insert(String[] commandParameters) {
  76. int positionToInsert = Integer.parseInt(commandParameters[1]);
  77. String nameToInsert = commandParameters[2];
  78.  
  79. if (positionToInsert >= 0 && positionToInsert <= queue.size()) {
  80. queue.add(positionToInsert, nameToInsert);
  81. if (!names.containsKey(nameToInsert)) {
  82. names.put(nameToInsert, 0);
  83. }
  84.  
  85. names.put(nameToInsert, names.get(nameToInsert) + 1);
  86. builder.append(SUCCESS);
  87. } else {
  88. builder.append(ERROR);
  89. }
  90. }
  91.  
  92. private static void append(String[] commandParameters) {
  93.  
  94. String nameToAppend = commandParameters[1];
  95. queue.add(nameToAppend);
  96. if (!names.containsKey(nameToAppend)) {
  97. names.put(nameToAppend, 0);
  98. }
  99.  
  100. names.put(nameToAppend, names.get(nameToAppend) + 1);
  101. builder.append(SUCCESS);
  102.  
  103. }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement