Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задачу на Java

Алексей Пахомов Ученик (11), на голосовании 1 год назад
Вот сама задача:

Напишите программу, которая реализует структуру данных очередь, используя список.
Условие задачи таково: пользователь листает список музыки и добавляет в плейлист понравившиеся ему композиции. Когда песня доигрывает, включается следующая. Вам необходимо вывести на экран через пробел композиции, которые будут играть далее.
Сначала вводится число n - количество запросов к вашей программе. Каждый из запросов будет иметь один следующих видов:
push <Название трека> - добавляет трек в плейлист
pop - удаляет из плейлиста первый трек. При этом на экран выводится запись вида "воспроизводится <название трека>"
После выполнения всех запросов выведите оставшиеся в очереди треки. Гарантируется, что название трека состоит из одного слова.
Пример ввода:
4
push Трек1
push Трек3
pop
push ТрекТрек

Пример вывода:
воспроизводится Трек1
Трек3 ТрекТрек

Мой код:
 import java.util.Scanner; 
import java.util.ArrayList;

class MyProgram{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int numberOfTracks = scan.nextInt();
scan.nextLine();
ArrayList tracks = new ArrayList<>();
String currentTrack = "";
for(int i = 0; i < numberOfTracks; i++){
String input = scan.nextLine();
String[] commandAndTrack = input.split(" ");
if(commandAndTrack[0].equals("push")){
tracks.add(commandAndTrack[1]);
} else {
currentTrack = tracks.get(0);
tracks.remove(0);
}
}
System.out.println("воспроизводится " + currentTrack);
for(String x : tracks){
System.out.print(x + " ");
}
}
}
В чем у меня проблема:
Точно не могу сказать, что и где не так. Первую проверку этот код проходит(проверка из примера ввода и вывода), а вот вторую - нет(неизвестная проверка). Я предполагаю, что дело в проигрывающимся треке. Я не совсем понял условие в этом моменте. Можете помочь и объяснить, что и где не так. Заранее всем спасибо.

P.S. код специально написан без методов, ну кроме main. Причину объяснять долго, примите это как факт.
Голосование за лучший ответ
Терр Онтал Мудрец (12751) 1 год назад
В условии написано, что надо выводить "воспроизводится трек ..." после каждого pop, а у тебя только один раз в конце.

Нейросеть правильно написала, спасибо ей
Sergio 2.1 Оракул (67303) 1 год назад
 import java.util.Scanner;  
import java.util.ArrayList;

class MyProgram{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int numberOfTracks = scan.nextInt();
scan.nextLine();
ArrayList tracks = new ArrayList<>();
String currentTrack = "";
for(int i = 0; i < numberOfTracks; i++){
String input = scan.nextLine();
String[] commandAndTrack = input.split(" ");
if(commandAndTrack[0].equals("push")){
tracks.add(commandAndTrack[1]);
} else {
currentTrack = tracks.get(0);
tracks.remove(0);
System.out.println("воспроизводится " + currentTrack);
}
}
for(String x : tracks){
System.out.print(x + " ");
}
}
}
Терр ОнталМудрец (12751) 1 год назад
Респект бесконечный
АлександрИскусственный Интеллект (301635) 1 год назад
ну и чо, проходит этот код хотя бы пример показанный в вопросе?... ламеры...
Похожие вопросы