어느 배열이 주어지고 이 배열에서 숫자를 하나씩 지워갈 때 마지막에 남을 수 있는 숫자의 개수를 구하는 문제입니다. 배열에서 숫자를 삭제할 때는 인접한 두 숫자를 비교해서 더 큰 숫자를 삭제합니다. 단 1회에 한해서 더 작은 숫자를 삭제할 수 있습니다.
def solution(a):
answer = 0
length=len(a)
arr = [0]*length
minNum=1e11
for i in range(length):
if minNum>a[i]:
arr[i]+=1
minNum=a[i]
minNum=1e11
for i in range(length-1, -1, -1):
if minNum>a[i]:
arr[i]+=1
minNum=a[i]
for i in arr:
if i!=0:
answer+=1
return answer