DP 로 푼다.
var low = Array(repeating: 1, count: array.count)
var high = Array(repeating:1, count: array.count)
var ans = 0
for k in 1..<array.count {
for j in 0..<k {
if array[j] < array[k] {
high[k] = max(high[k], low[j] + 1)
} else if array[j] > array[k] {
low[k] = max(low[k], high[j] + 1)
}
}
ans = max(low[k], high[k])
}
return ans