생각보다 많은 시간이 필요했던 문제이다.
어떻게 풀어야 하나 하면서 골치를 썩었다.
내가 내 왼쪽에 있는 숫자들 중 최솟값과 내 오른쪽에 있는 숫자들 중 최솟값 보다 크면 나는 끝까지 남을 수 없다.
이 말인 즉슨, 자기의 왼쪽 혹은 오른쪽에 자기보다 큰 수만 존재할 때 나는 남을 수 있다.
## 나를 기준으로 내 옆에 쭉 혹은 내 오른쪽 쭉에 나 보다 큰수만 있다? 나는 끝까지 남을 수 있다.
def solution(a):
answer = [False]*len(a)
minL = float("inf")
minR = float("inf")
## 최솟값을 초기화 하면서 내가 그 수 보다 작으면 다 나보다 큰 수다.
for i in range(len(a)):
if a[i] < minL:
minL = a[i]
answer[i] = True
if a[-1-i] < minR:
minR = a[-1-i]
answer[-1-i] = True
return sum(answer)