안녕하세요

프로그래머스 JS [햄버거 만들기] 본문

프로그래머스/Lv.1

프로그래머스 JS [햄버거 만들기]

sakuraop 2023. 2. 2. 17:09

햄버거 만들기 문제 보기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 요약

  • 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고
  • 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장
  • 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장

풀이 과정

재료를 순서대로 놓는다.
빵-야채-고기-빵 순서로 쌓여있다면 재료들을 가지고 햄버거를 쌓는다.



1) 재료를 놓을 조리대, 완성한 햄버거 숫자 카운터 준비

function solution(ingredient) {
  const ingredientStack = [];
  let burgerCount = 0;

2) 재료를 조리대에 순서대로 놓는다.

  ingredient.forEach((element) => {
    ingredientStack.push(element);

3) 빵-야채-고기-빵 순서로 놓여있다면 재료들을 가지고 햄버거를 쌓는다.

    while (JSON.stringify(ingredientStack.slice(-4)) === JSON.stringify([1, 2, 3, 1])) {
      ingredientStack.splice(-4);
      burgerCount++;
    }
  });

4) 만들어진 버거 횟수 반환

  return burgerCount;
}

function solution(ingredient) {
  const ingredientStack = [];
  let burgerCount = 0;

  ingredient.forEach((element) => {
    ingredientStack.push(element);

    while (JSON.stringify(ingredientStack.slice(-4)) === JSON.stringify([1, 2, 3, 1])) {
      ingredientStack.splice(-4);
      burgerCount++;
    }
  });

  return burgerCount;
}