본문 바로가기
자료구조 & 알고리즘

프로그래머스 햄버거 만들기 (stack) - 자바스크립트 풀이

by PARADISE247 2024. 11. 4.
반응형

 ☕️

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

스택을 사용해서 문제를 풀었다.

원래는 ingredient.join("")을 하고 해당 문자열에 "1231"이 포함되어 있는 경우를 조건으로 while문을 돌리는 코드를 짰는데 타임 아웃 에러가 나서 아래와 같이 스택을 사용해서 다시 풀어보았다.

function solution(ingredient) {
    let answer = 0;
    let stack = []; // 스택 사용
    
    for(let item of ingredient){
        stack.push(item); // 재료를 하나씩 스택에 넣는다.
        if(stack.length >= 4 
           && stack.at(-1) === 1 
           && stack.at(-2) === 3
           && stack.at(-3) === 2
           && stack.at(-4) === 1) { // 1231 순서로 쌓인 재료가 있는지 판별한다
            stack.splice(stack.length - 4, 4); // 버거가 완성이 되면 해당 재료는 배열에서 삭제한다
            answer++; // 버거 개수를 늘린다
        }
    }
    
    return answer;
}
반응형