최대 1 분 소요

part37. 햄버거 만들기

js ver 1.0

function solution(ingredient) {
    let answer = 0;
    let idx = ingredient.indexOf(1);
    const storage = [];

    while (idx != -1) {
        if (ingredient.slice(idx, idx + 4).join('') == '1231') {
            answer++;
            ingredient.splice(idx, 4);
            idx = storage.pop() ?? ingredient.indexOf(1);
        } else {
            storage.push(idx);
            idx = ingredient.indexOf(1, idx + 1);
        }
    }

    return answer;
}


실행결과_js ver 1.0


js ver 1.1

function solution(ingredient) {
    return ingredient.reduce((obj, stuff) => {
        obj.storage.push(stuff);

        if(obj.storage.slice(-4).join('') == '1231'){
            obj.storage.splice(-4);
            obj.hamburger++;
        }

        return obj;
    }, {storage: [], hamburger: 0}).hamburger;
}


실행결과_js ver 1.1


js ver 1.2 걍 빨라서 넣음

function solution(ingredient) {
    let hamburger = 0;
    let storage = [];

    for (let i = 0; i < ingredient.length; i++) {
        const stuff = ingredient[i];
        storage.push(stuff);

        if (storage.length >= 4 &&
                stuff === 1 &&
                storage[storage.length - 4] === 1 &&
                storage[storage.length - 3] === 2 &&
                storage[storage.length - 2] === 3 &&
                storage[storage.length - 1] === 1) {
            storage.length -= 4;
            hamburger++;
        }
    }

    return hamburger;
}


실행결과_js ver 1.1


업데이트: