Piling Up in python - HackerRank Solution
Problem :
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.
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.
Solution :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | # Piling Up in python - Hacker Rank Solution # Python 3 # Enter your code here. Read input from STDIN. Print output to STDOUT # Piling Up in python - Hacker Rank Solution START 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") # Piling Up in python - Hacker Rank Solution END |
Disclaimer :-
the above hole problem statement is given by hackerrank.com but the solution is generated by the codeworld19 authority if any of the query regarding this post or website fill the following contact form thank you.
from collections import deque
L = ['No', 'Yes']
T = int(input())
for i in range(T):
t = True
N = int(input())
b = deque(map(int, input().split()), N)
m = max(b[0], b[-1])
while b:
if b[0] >= b[-1]: c = b.popleft()
else: c = b.pop()
if m >= c: m = c
else:
t = False
break
print(L[t])
# Enter your code here. Read input from STDIN. Print output to STDOUT
from collections import deque
T=int(input())
for i in range(T):
d=deque()
n=int(input())
s_l=input().split()
for k in s_l:
d.append(int(k))
count=0
for i in range(1,n):
if d[0]>d[-1]:
large=d.popleft()
if large<d[0]:
count+=1
else:
large=d.pop()
if large <d[-1]:
count +=1
if count==0:
print("Yes")
else:
print("No")