문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/68646
def solution(a):
ans = 2 # 기본적으로 양끝은 무조건 살아남을수 있다.
left_min = [a[0]]
right_min = [a[-1]]
for i in range(1, len(a)):
if left_min[-1] > a[i]:
left_min.append(a[i])
else:
left_min.append(left_min[-1])
if right_min[-1] > a[len(a)-1-i]:
right_min.append(a[len(a)-1-i])
else:
right_min.append(right_min[-1])
right_min.reverse() # 계산을 편하게 하기위해서
for i in range(1, len(a)-1):
if left_min[i-1] > a[i] or right_min[i+1] > a[i]:
ans += 1
return ans