Piling Up in Python HackerRank Solution

Hello Programmers, In this post, you will know how to solve the Piling Up in Python HackerRank Solution. This problem is a part of the HackerRank Python Programming Series.

Ezoicreport this adPiling Up in Python HackerRank Solution
Piling Up in Python HackerRank Solution

One more thing to add, don’t directly look for the solutions, first try to solve the problems of Hackerrank by yourself. If you find any difficulty after trying several times, then you can look for solutions.

Piling Up in python HackerRank Solution

Problem

There is a horizontal row of n cubes. The length of each cube is given. You need to create a new vertical pile of cubes. The new pile should follow these directions: if cubei is on top of cubej then sideLengthj >= sideLengthi.
When stacking the cubes, you can only pick up either the leftmost or the rightmost cube each time. Print “Yes” if it is possible to stack the cubes. Otherwise, print “No”. Do not print the quotation marks.

Input Format :

The first line contains a single integer T, the number of test cases.
For each test case, there are 2 lines.
The first line of each test case contains n, the number of cubes.
The second line contains n space separated integers, denoting the sideLengths of each cube in that order.

Constraints :

  • 1 <= T <= 5
  • 1 <= n <= 10^5
  • 1 <= sideLength <= 2^31

Output Format :

For each test case, output a single line containing either “Yes” or “No” without the quotes.

Sample Input :

2
6
4 3 2 1 3 4
3
1 3 2

Sample Output :

Yes
No

Explanation :

In the first test case, pick in this order: left -4 , right -4 , left -3 , right – 3, left – 2, right – 1. In the second test case, no order gives an appropriate arrangement of vertical cubes. 3 will always come after either 1 or 2.

Piling Up in python HackerRank Solutions

from collections import deque
N = int(input())
for _ in range(N):
    flag = True
    input()
    d = deque(map(int, input().strip().split()))
    if(d[0] >= d[-1]):
        max = d.popleft()
    else:
        max = d.pop()
    while d:
        if(len(d)==1):
            if(d[0] <= max):
                break
            else:
                flag = False
                break
        else:
            if(d[0]<=max and d[-1]<=max):
                if(d[0]>=d[-1]):
                    max = d.popleft()
                else:
                    max = d.pop()
            elif(d[0]<=max):
                max = d.popleft()
            elif(d[-1]<=max):
                max = d.pop()
            else:
                flag = False
                break
    if flag:
        print("Yes")
    else:
        print("No")

Disclaimer: The above Problem (Piling Up in python) is generated by Hackerrank but the Solution is Provided by BrokenProgrammers. This tutorial is only for Educational and Learning purposes.

Sharing Is Caring

Leave a Comment

Ezoicreport this ad