호지

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

알고리즘/프로그래머스

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

_hoji

재료를 확인해서 1231순서가 나온다면 햄버거를 만드는 경우이므로 answer를 1증가하고,

재료리스트에서 1231을 제거한다.

이때 재료리스트가 4이하면 햄버거를 만들지 못하는 경우이므로 종료.

i에서 3을 빼주고 위 과정을 반복한다.

 

* 3을 빼는 이유는 햄버거를 만들기위해서는 2번째전 재료부터 다시 확인하면 되기 때문이다.

순서가 1231이기 때문에 3번째전 재료부터 확인해서 123의 순서가 나오게 되면

1231231 처럼되게 되는데 이렇게되면 이미 앞에 1231이 만나 햄버거가 만들어졌기 때문에

3번째전 재료부터 확인했을 때 123의 순서는 절대 나올수가 없다.

따라서 우리는 2번째전 재료부터 확인하면 되는데, for문에서 1증가가 이뤄지기 때문에

i에서 3을 빼면 자동으로 2번째전 재료부터 다시 확인하면서 햄버거를 만들 수 있는지 체크한다.

 

function solution(ingredient) {
  let answer = 0
  for (let i = 0; i <= ingredient.length - 4; i++) {
    if (ingredient[i] === 1 && ingredient[i + 1] === 2 && ingredient[i + 2] === 3 && ingredient[i + 3] === 1) {
      answer++
      ingredient.splice(i, 4)
      if (ingredient.length < 4) break
      i -= 3
    }
  }
  return answer
}

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

Comments