💡 문제
💬 입출력 예시
📌 풀이(소스코드)
import java.util.*;
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
ArrayList<Integer> ingredients = new ArrayList<Integer>();
ArrayList<Integer> seq = new ArrayList<Integer>();
seq.add(1);
seq.add(2);
seq.add(3);
seq.add(1);
for (int i = 0; i < ingredient.length; i++) {
ingredients.add(ingredient[i]);
if (ingredients.size() >= 4) {
ArrayList<Integer> temp = new ArrayList<Integer>();
temp.add(ingredients.get(ingredients.size() - 4));
temp.add(ingredients.get(ingredients.size() - 3));
temp.add(ingredients.get(ingredients.size() - 2));
temp.add(ingredients.get(ingredients.size() - 1));
if (temp.equals(seq)) {
answer++;
ingredients.remove(ingredients.size() - 1);
ingredients.remove(ingredients.size() - 1);
ingredients.remove(ingredients.size() - 1);
ingredients.remove(ingredients.size() - 1);
}
}
}
return answer;
}
}
📄 해설
스택(Stack)
자료구조를 사용한다는 생각으로 접근하면 해결 가능
Java
의 Stack
클래스를 사용 할 경우 인덱싱이 어려우므로, ArrayList
클래스를 사용하여 해결하였음
- 재료 리스트
ingredients
와 햄버거 순서 리스트 seq
를 사용
- 재료 리스트에 입력 받은 재료를 추가
- 재료 리스트의 크기가 4 이상일 경우, 임시 리스트
temp
에 마지막 4개 재료를 전부 추가
temp
와 seq
가 같으면 answer
증가 후 재료 리스트에서 제거