
😎풀이
nums 2중 순회
1-1. l부터 r까지의 범위 검증
1-2. nums[l]이 짝수인지 검증
1-3. 범위의 모든 요소가 홀수 혹은 짝수인지 검증
1-4. 범위의 모든 요소가 임계값을 초과하지 않는지 검증
1-5. 모든 조건을 만족하는 최대 길이의 연속된 범위 갱신
- 탐색된 최대 길이의 연속된 범위 길이 반환
function longestAlternatingSubarray(nums: number[], threshold: number): number {
let longest = 0
for(let l = 0; l < nums.length; l++) {
if(nums[l] % 2 !== 0) continue
for(let r = l; r < nums.length; r++) {
const range = nums.slice(l, r + 1)
let isValid = true
for(let k = 0; k < range.length - 1; k++) {
const isFirstFail = range[k] % 2 === range[k + 1] % 2
const isSecondFail = range[k] > threshold
if(isFirstFail || isSecondFail) {
isValid = false
break
}
}
if(range.at(-1) > threshold) {
isValid = false
}
if(!isValid) {
break
}
longest = Math.max(longest, range.length)
}
}
return longest
};