
오른쪽 끝에서 왼쪽을 바라보앗을대 보이는 막대기의 개수를 출력해라
오른쪽에서 봤을 때 보이는 개수를 출력해야 하지만, 애초에 입력을 1개씩 받아야 하기 때문에 입력과 동시에 해당 입력값에 대한 동작을 처리하는 것이 효율적이라고 생각한다.
하나의 원소씩 입력을 받을것이며 순차적인 비교 과정과 비교에 대한 처리로
값에 대한 유지/추가/삭제가 용이 해야 하므로 스택 자료구조를 사용한다.
while(stick and stick[-1]<=num):
stick.pop()
stick.append(num)
import sys
input = sys.stdin.readline
stick = []
n = int(input())
for i in range(n):
if i == 0 :
stick.append(int(input()))
continue
num = int(input())
while(stick and stick[-1]<=num):
stick.pop()
stick.append(num)
print(len(stick))

입력을 받는 순서대로 판단을 해서 스택에 넣어야 하는지(Left to Right),
다 넣어 놓고 하나씩 빼내면서 판단해야 하는지(Right to Left) 를 고민했다.
스택으로 구현해서 입력할때마다 모든 원소들을 고려하자
새로 입력 받는 막대기보다 짧다면 전부 pop해줘야 한다.