List Comprehensions in Python | HackerRank Solution

Hello there coders, today we are going to solve List Comprehensions in Python Hacker Rank Solution.

List Comprehensions in Python - Hacker Rank Solution

Problem

Let’s learn about list comprehensions! You are given three integers xy and z representing the dimensions of a cuboid along with an integer n. Print a list of all possible coordinates given by (ijk) on a 3D grid where the sum of i + j + k is not equal to n. Here, 0 <= i <= x; 0 <= j <= y; 0 <= k <= z. Please use list comprehensions rather than multiple loops, as a learning exercise.

Example

x = 1
y = 1
z = 2
n = 3 

All permutations of [ijk] are:
[[0, 0, 0], [0, 0, 1], [0, 0, 2], [0, 1, 0], [0, 1, 1], [0, 1, 2], [1, 0, 0], [1, 0, 1], [1, 0, 2], [1, 1, 0], [1, 1, 1], [1, 1, 2]].

Print an array of the elements that do not sum to n = 3.
[[0, 0, 0], [0, 0, 1], [0, 0, 2], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1],  [1, 1, 0],  [1, 1, 2]]

Input Format

Four integers xyz and n, each on a separate line.

Constraints

Print the list in lexicographic increasing order.

Sample Input 0

1
1
1
2

Sample Output 0

[[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 1]]

Explanation 0

Each variable xy and z will have values of 0 or 1. All permutations of lists in the form [ijk] = [[0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 1], [1, 0, 0], [1, 0, 1],  [1, 1, 0]].

Remove all arrays that sum to n = 2 to leave only the valid permutations.

Sample Input 1

2
2
2
2

Sample Output 1

[[0, 0, 0], [0, 0, 1], [0, 1, 0], [0, 1, 2], [0, 2, 1], [0, 2, 2], [1, 0, 0], [1, 0, 2], [1, 1, 1], [1, 1, 2], [1, 2, 0], [1, 2, 1], [1, 2, 2], [2, 0, 1], [2, 0, 2], [2, 1, 0], [2, 1, 1], [2, 1, 2], [2, 2, 0], [2, 2, 1], [2, 2, 2]]

Solution – List Comprehensions in Python – Hacker Rank Solution

if __name__ == '__main__':
    x = int(input())
    y = int(input())
    z = int(input())
    n = int(input())
    output = [];
    abc = [];
    for X in range(x+1):
        for Y in range(y+1):
            for Z in range(z+1):
                if X+Y+Z != n:
                    abc = [X,Y,Z];
                    output.append(abc);
print(output);    

Disclaimer: The above Problem (List Comprehensions) is generated by Hacker Rank but the Solution is provided by CodingBroz. This tutorial is only for Educational and Learning purposes.

5 thoughts on “List Comprehensions in Python | HackerRank Solution”

  1. output = [[X,Y,Z] for X in range(x+1) for Y in range(y+1) for Z in range(z+1) if X+Y+Z != n]
    print (output)

  2. print([[i,j,k]for i in range(x+1) for j in range(y+1) for k in range(z+1) if ((i+j+k) !=n)])

  3. when I type this program it shows some error.
    Traceback (most recent call last):
    File “Solution.py”, line 3, in
    ValueError: invalid literal for int() with base 10: ‘insert 0 5’
    How to clear these errors?

Leave a Comment

Your email address will not be published. Required fields are marked *