햄버거 가게에서 직원이 특정 순서로 쌓인 재료를 포장한다. 재료 순서는 다음과 같다.
아래에서부터 [빵(1), 야채(2), 고기(3), 빵(1)] 순서로 쌓여야 햄버거로 인정.
import java.util.Stack;
public class Solution {
public int solution(int[] ingredient) {
Stack<Integer> stack = new Stack<>();
int count = 0; // 햄버거 개수
for (int item : ingredient) {
stack.push(item); // 재료를 스택에 추가
// 스택 상단의 4개가 햄버거 패턴 [1, 2, 3, 1]인지 확인
if (stack.size() >= 4) {
int size = stack.size();
if (stack.get(size - 4) == 1 &&
stack.get(size - 3) == 2 &&
stack.get(size - 2) == 3 &&
stack.get(size - 1) == 1) {
// 패턴 발견 시, 스택에서 제거하고 햄버거 개수 증가
stack.pop();
stack.pop();
stack.pop();
stack.pop();
count++;
}
}
}
return count; // 포장된 햄버거 개수 반환
}
}