import java.util.*;
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
for(int i =0; i<ingredient.length; i++) {
stack.add(ingredient[i]);
while(stack.size() > 3) {
int[] intArr = new int[4];
intArr[3] = stack.pop();
intArr[2] = stack.pop();
intArr[1] = stack.pop();
intArr[0] = stack.pop();
if(intArr[3] == 1 && intArr[2] == 3 && intArr[1] == 2 && intArr[0] == 1) {
answer ++;
}else {
stack.add(intArr[0]);
stack.add(intArr[1]);
stack.add(intArr[2]);
stack.add(intArr[3]);
break;
}
}
}
return answer;
}
}
- 1레벨 후반대부터는 문제가 어려울까봐 문제를 읽기전부터 겁을 내지만 일단 일어보고 겁내자 하고 읽었는데 음.. 쉽겠는데? 라고 생각이 들었다.
- 실제로 쉽게 풀었는데 점수는 3점이라는 기분좋은 결과
- 넣었다가 뺀다 라는 곳에서 스택을 써야겠다고 판단했고 햄버거를 만든후 다시 정렬해서 검사한다는 부분이 포인트라고 생각했다.
- 반복문을 돌려서 햄버거가 안되면 탈출하게 하고 아니라면 계속해서 뒤에서부터 꺼내서 햄버거를 만들어보는 로직을 구현했다.
- 햄버거 속에 들어가는 종류가 많아진다면 속에 작업들을 반복문으로 처리하면 된다. (속도의 이슈가 있겠지만) 끝.