[LeetCode] 2970. Count the Number of Incremovable Subarrays I

Chobby·2025년 12월 16일

LeetCode

목록 보기
832/1063

😎풀이

  1. 배열이 오름차 순인지 판별할 헬퍼 함수 젖ㅇ의
  2. nums 2중 포인터 순회
    2-1. nums를 순회하며, 현재 요소가 제거될 요소의 범위에 속하지 않을 경우를 판별
    2-2. 제거될 범위의 요소를 제외한 나머지 요소들이 오름차 순 정렬되어있는지 확인
  3. 범위제거 이후, 오름차 순 정렬된 배열이 남겨지는 경우의 수 반환환
function incremovableSubarrayCount(nums: number[]): number {
    const n = nums.length
    let count = 0
    for(let left = 0; left < n; left++) {
        for(let right = left; right < n; right++) {
            const curNums = []
            for(let i = 0; i < n; i++) {
                if(i >= left && i <= right) continue
                curNums.push(nums[i])
            }
            if(isAsc(curNums)) count++
        }
    }
    return count
};

function isAsc(nums: number[]) {
    for(let i = 1; i < nums.length; i++) {
        if(nums[i - 1] >= nums[i]) return false
    }
    return true
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글