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

2023. 1. 3. 16:42기록/Programmers

    목차

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/133502

 

프로그래머스

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

programmers.co.kr


나의 문제 풀이

function solution(ingredient) {
  let answer = 0;
  const stack = [];

  ingredient.forEach((item) => {
    stack.push(item);

    if (stack.length >= 4) {
      if (stack.slice(-4).join('') === '1231') {
        answer++;
        stack.splice(-4, 4);
      }
    }
  });

  return answer;
}
  • 주어진 재료 배열의 요소들을 하나씩 꺼냄
  • 스택 배열에 현재 요소를 push 함
  • 스택 배열의 길이가 4보다 같거나 클 경우 (햄버거의 길이)
    • 스택 배열의 뒤에서 4번째부터 마지막까지 자른 후 문자열로 이어붙임
    • 해당 값이 '1231' 과 같을 경우
      • 정답 변수에 1을 더해줌
      • 스택 배열의 뒤에서 4번째부터 마지막까지의 요소 삭제

다른 사람의 문제 풀이

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;
}