daily pastebin goal
19%
SHARE
TWEET

SCP

mirozspace Feb 22nd, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import java.util.Scanner;
  5. import java.util.stream.Collectors;
  6.  
  7. public class CoursePlanning {
  8.     public static void main(String[] args) {
  9.         Scanner scanner = new Scanner(System.in);
  10.         List<String> result = new ArrayList<>();
  11.         List<String> lessons = Arrays.stream(scanner.nextLine()
  12.                 .split(", "))
  13.                 .collect(Collectors.toList());
  14.         String initialScheduleLessons = scanner.nextLine();
  15.         while (!"course start".equals(initialScheduleLessons)) {
  16.             String[] commandArr = initialScheduleLessons.split(":");
  17.             String command = commandArr[0];
  18.             switch (command) {
  19.                 case "Add":
  20.                     result = addLessons(lessons, commandArr[1]);
  21.                     break;
  22.                 case "Insert":
  23.                     result = insertLessons(lessons, commandArr[1], Integer.parseInt(commandArr[2]));
  24.                     break;
  25.                 case "Remove":
  26.                     result = removeLessons(lessons, commandArr[1]);
  27.                     break;
  28.                 case "Swap":
  29.                     result = swapLessons(lessons, commandArr[1], commandArr[2]);
  30.                     break;
  31.                 case "Exercise":
  32.                     result = exerciseLessons(lessons, commandArr[1]);
  33.                     break;
  34.             }
  35.             initialScheduleLessons = scanner.nextLine();
  36.         }
  37.         for (int i = 0; i < result.size(); i++) {
  38.             System.out.println(i + 1 + "." + result.get(i));
  39.         }
  40.     }
  41.  
  42.     private static List<String> addLessons(List<String> lessons, String lessonTitle) {
  43.         lessons.add(lessonTitle);
  44.         return lessons;
  45.     }
  46.  
  47.     private static List<String> insertLessons(List<String> lessons, String lessonTitle, int index) {
  48.         if (lessons.contains(lessonTitle)) return lessons;
  49.         lessons.add(index, lessonTitle);
  50.         return lessons;
  51.     }
  52.  
  53.     private static List<String> removeLessons(List<String> lessons, String lessonTitle) {
  54.         String nameOfLesson = lessonTitle;
  55.         String nameOfLessonExercise = lessonTitle + "-Exercise";
  56.         for (int i = 0; i < lessons.size(); i++) {
  57.             String searchLesseon = lessons.get(i);
  58.             if (searchLesseon.equals(nameOfLesson)) {
  59.                 lessons.remove(i);
  60.             }
  61.         }
  62.         for (int i = 0; i < lessons.size(); i++) {
  63.             String searchLesseon = lessons.get(i);
  64.             if (searchLesseon.equals(nameOfLessonExercise)) {
  65.                 lessons.remove(i);
  66.             }
  67.         }
  68.         return lessons;
  69.     }
  70.  
  71.     private static List<String> swapLessons(List<String> lessons, String lesson, String secondLesson) {
  72.         int index1Lesson = lessons.indexOf(lesson);
  73.         int index2secondLesson = lessons.indexOf(secondLesson);
  74.  
  75.         if (index1Lesson != -1 && index2secondLesson != -1) {
  76.             lessons.set(index2secondLesson, lesson);
  77.             lessons.set(index1Lesson, secondLesson);
  78.             if (index1Lesson + 1 < lessons.size() && lessons.get(index1Lesson + 1).contains(lesson + "-Exercise")) {
  79.                 String course = lessons.get(index1Lesson + 1);
  80.                 lessons.remove(index1Lesson + 1);
  81.                 lessons.add(index2secondLesson + 1, course);
  82.             }
  83.             if (index2secondLesson + 1 < lessons.size() && lessons.get(index2secondLesson + 1).contains(secondLesson + "-Exercise")) {
  84.                 String course = lessons.get(index2secondLesson + 1);
  85.                 lessons.remove(index2secondLesson + 1);
  86.                 lessons.add(index1Lesson + 1, course);
  87.             }
  88.         }
  89.         return lessons;
  90.     }
  91.  
  92.     private static List<String> exerciseLessons(List<String> lessons, String lessonTitle) {
  93.  
  94.         String lessonTitleExer = lessonTitle + "-Exercise";
  95.         if (!(lessons.contains(lessonTitle))) {
  96.             lessons.add(lessonTitle);
  97.             lessons.add(lessonTitleExer);
  98.         } else if (lessons.contains(lessonTitle)) {
  99.             if (!lessons.contains(lessonTitleExer)) {
  100.                 int position = lessons.indexOf(lessonTitle);
  101.                 lessons.add(position + 1, lessonTitleExer);
  102.             }
  103.         }
  104.         return lessons;
  105.     }
  106. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top