In this post, we will see the solution of the Python Coding Question which is already asked in the TCS NQT Exam.

**Problem Statement:** A factory is packing candies into the packets. The candies packets here represent an array of N number of integer values. The task is to find the empty packets(0) of candies and push it to the end of the conveyor belt(array).

**Example 1 :**

**N=10 and arr = [40,50,0,10,90,0,50,0,65,0].**

There are 4 empty packets in the given set. These 4 empty packets represented as 0 should be pushed towards the end of the array

Input :10 â€“ Value of N [40,50,0,10,90,0,50,0,65,0] â€“ Element of arr[O] to arr[N-1]Output:40 50 10 90 50 65 0 0 0 0

**Example 2:**

**N=6 and arr = [6,0,1,8,0,2].**

There are 2 empty packets in the given set. These 2 empty packets represented as 0 should be pushed towards the end of the array

Input:6 â€” Value of N. [6,0,1,8,0,2] â€“ Element of arr[0] to arr[N-1]Output:6 1 8 2 0 0

**Solution 1:**

# taking inputs N = int(input()) arr = list(map(int, input().split())) # empty list created non_zero_arr = [] zero_arr = [] # Iterate through the list to collect all non-zero # and zero elements separately in the list for packet in arr : # non-zero element check if packet : non_zero_arr.append(packet) else : zero_arr.append(packet) # concatenating both the list result_arr = non_zero_arr + zero_arr print(result_arr)

**Output:**

8 40 50 0 10 90 0 50 0 [40, 50, 10, 90, 50, 0, 0, 0]

**Solution 2:**

# taking inputs N = int(input()) arr = list(map(int, input().split())) # Iterate through the list to collect all non-zero element non_zero_arr = [packet for packet in arr if packet] # number of zeros count zeros_count = arr.count(0) # concatenating both the list result_arr = non_zero_arr + [0] * zeros_count print(result_arr)

**Output:**

8 40 50 0 1 9 0 5 0 [40, 50, 1, 9, 5, 0, 0, 0]

**Both time and space complexity for the above solutions is O(N).**