[Lv.1] 햄버거 만들기 **

01수정·2023년 11월 13일
0
post-custom-banner

문제


풀이

  • 아래에서부터 위로 쌓인다 -> 스택
    스택 (First-In Last-Out)
    큐 (First-In First-Out)
  • array.slice(start, end) : 배열의 일부분을 추출하여 새로운 배열을 반환한다. 원본 배열은 변경되지 않는다.
  • splice : 배열에서 요소를 추가, 제거 또는 교체하는 작업을 수행한다. 이때 원본 배열이 수정된다.
function solution(ingredient) {
    let stack = [];
    let burgers = 0;
        
    for (let val of ingredient) {
        stack.push(val);
        
        if (stack.slice(-4).join('') === '1231') {
            stack.splice(-4);
            burgers++;
        }
    }
    
    return burgers;
}

다른 풀이

function solution(ingredient) {
    let count = 0;

    for (let i = 0; i < ingredient.length; i++) {
        if (ingredient.slice(i, i + 4).join('') === '1231') {
            count++;
            ingredient.splice(i, 4);
            i -= 3;
        }
    }

    return count;
}
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);
        }
    }
    return count;
}
profile
새싹 FE 개발자
post-custom-banner

0개의 댓글