| 문제 | 레벨 | 정답률 |
|---|---|---|
| 햄버거 만들기 | Lv.1 | 54% |

import java.util.*;
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
for(int n : ingredient){
stack.push(n);
if(stack.size() >= 4){
if(stack.get(stack.size()-1) == 1
&& stack.get(stack.size()-2) == 3
&& stack.get(stack.size()-3) == 2
&& stack.get(stack.size()-4) == 1){
for(int i = 0; i<4; i++){
stack.pop();
}
answer++;
}
}
}
return answer;
}
}
stack을 사용하긴 했지만 stack의 특성을 활용하진 않은 코드,,^
stack에 일단 push 해주고 크기가 4이상이면 get 메서드로 뒤에서부터 4개를 가져와서 맞는지 check 해준다.
그리고 순서대로 들어와있다면 pop!
그런데 알고보니 get 메서드는 Stack 클래스에서 정의되는 메서드가 아니라고 함
get 메서드는 Vector에서 상속된 메서드
ㄴ Stack이 Vector 클래스를 상속받음
ㄴ 후입선출 구조 따르지 않음
사실상 get을 쓸거면 stack을 쓸 필요가 없을 것 같긴 하다.