List Comprehensions – HackerRank Solution

List Comprehensions – HackerRank Solution

Problem :

Let’s learn about list comprehensions! You are given three integers x, y and z representing the dimensions of a cuboid along with an integer n. Print a list of all possible coordinates given by (i,j,k) 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 [i,j,k] are:

Print an array of the elements that do not sum to n = 3.

Input Format :

Four integers x, y, z 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]]

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 :

if __name__ == '__main__':
    x = int(input())
    y = int(input())
    z = int(input())
    n = int(input())
    listijk = []

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

 199 total views,  1 views today

Post Disclaimer

the above hole problem statement is given by hackerrank.com but the solution is generated by the SLTECHACADEMY authority if any of the query regarding this post or website fill the following contact form thank you.

Leave a Reply

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