Напишите программу, которая осуществляет «сжатие массива» – заменяет все повторяющиеся элементы нулями и перемещает все

Напишите программу, которая осуществляет «сжатие массива» – заменяет все повторяющиеся элементы нулями и перемещает все нулевые элементы в конец массива. При этом все оставшиеся элементы сохраняются в начале массива в том же порядке, что и в исходном массиве. Входные данные: первая строка содержит размер массива n. Во второй строке через пробел указываются n чисел – элементы массива. Гарантируется, что 0 < n ≤ 10000. Выходные данные: программа должна вывести все элементы получившегося массива в одну строку, разделяя их пробелами. Примеры: входные данные: 6 0 1 2 1 2 3, выходные данные: 1 2 3 0 0 0.
Задача: Сжатие массива

Описание:

Для решения этой задачи необходимо создать программу, которая осуществляет сжатие массива. Сжатие массива заключается в замене всех повторяющихся элементов нулями и перемещении всех нулевых элементов в конец массива. При этом все оставшиеся элементы должны быть сохранены в начале массива в том же порядке, что и в исходном массиве.

Для решения этой задачи, мы можем воспользоваться следующим алгоритмом:

1. Создать пустой список (compressed_list).
2. Пройти по каждому элементу в исходном массиве.
3. Если элемент уже встречался ранее (повторяется), заменить его значением 0.
4. Если элемент еще не встречался (не повторяется), добавить его в compressed_list.
5. После прохода по всем элементам, добавить нули в compressed_list в соответствии с количеством повторяющихся элементов.
6. Вывести элементы compressed_list в одну строку, разделенные пробелами.

Пример использования:

Входные данные: 6 0 1 2 1 2 3

Шаги:

1. Создаем пустой список compressed_list.
2. Проходим по элементам входного массива:
— 0: добавляем 0 в compressed_list.
— 1: добавляем 1 в compressed_list.
— 2: добавляем 2 в compressed_list.
— 1: заменяем 1 на 0 в compressed_list.
— 2: заменяем 2 на 0 в compressed_list.
— 3: добавляем 3 в compressed_list.
3. Добавляем два нуля в compressed_list (количество повторяющихся элементов).
4. Выводим элементы compressed_list в одну строку, разделенные пробелами: 1 2 3 0 0.

Советы:

— Для реализации программы можно использовать цикл for и условные операторы if-else.
— Использование списков (list) упрощает добавление элементов и изменение их значений.
— Храните информацию о повторяющихся элементах для добавления нулей в конец массива.

Упражнение:

Напишите программу на Python, которая решает поставленную задачу.

Твой друг не знает ответ? Расскажи!