function solution(ingredient) {
var answer = 0;
for(let i=0;i<ingredient.length;i++){
if(ingredient[i]==1&&ingredient[i+1]==2
&&ingredient[i+2]==3&&ingredient[i+3]==1){
ingredient.splice(i,4)
if(i==1){
i=i-2
}else if(i==0){
i=i-1
}else{
i=i-3
}
console.log()
answer++
}
}
return answer;
}
예를들어 [2,1,1,2,3,1,2,3,1]
에서 index 2번째인 1을 검사할때, if 문 조건식이 참이된다. 그래서
ingredient.splice(i,4)
을 해주면 1,2,3,1이 삭제됨.
i는 현재 i보다 2가 작은 숫자에서 다시 검사를 해줘야한다.
만약 현재 i가 1이나0이라면, 인덱스 0부터 다시 검사를 해야함. 그래서 저런 로직을 만들어줌.
function solution(ingredient) {
let stk = [];
let count = 0;
for (let i = 0; i < ingredient.length; i++) {
stk.push(ingredient[i]);
if (
stk[stk.length-1] === 1 &&
stk[stk.length-2] === 3 &&
stk[stk.length-3] === 2 &&
stk[stk.length-4] === 1
) {
count++;
stk.splice(-4); //마지막4개를 없애줌.
}
}
return count;
}
const hey = [1,2,3,4,5,6,7]
hey.splice(-4) // [4, 5, 6, 7]
hey //[1,2,3]