정수 시퀀스가 배열로 주어지면 배열에서 요소를 하나만 제거하여 엄격하게 증가하는 시퀀스를 얻을 수 있는지 확인합니다.
참고:시퀀스 a0, a1, ..., an은 a0
예를 들어 sequence =[1, 3, 2, 1]의 경우 출력은 -
이 배열에는 엄격하게 증가하는 시퀀스를 얻기 위해 제거할 수 있는 요소가 없습니다.
시퀀스 =[1, 3, 2]의 경우 출력은 -
엄격하게 증가하는 시퀀스 [1, 2]를 얻기 위해 배열에서 3을 제거할 수 있습니다. 또는 2를 제거하여 엄격하게 증가하는 시퀀스[1, 3]를 얻을 수 있습니다.
이에 대한 코드는 -
콘솔의 출력은 다음과 같습니다. -almostIncreasingSequence(sequence) = false.
almostIncreasingSequence(sequence) = true.
예시
const arr1 = [3, 5, 67, 98, 3];
const arr2 = [4, 3, 5, 67, 98, 3];
const almostIncreasingSequence = sequence => {
let removed = 0;
let i = 0;
let prev = -Infinity;
while(removed < 2 && i < sequence.length) {
if(sequence[i] > prev) {
prev = sequence[i];
}else{
prev = Math.min(prev, sequence[i]);
removed++;
}
i++;
}
return removed < 2;
};
console.log(almostIncreasingSequence(arr1));
console.log(almostIncreasingSequence(arr2));
출력
true
false