프로그래머스 - 햄버거 만들기
풀이
- 햄버거는
[1, 2, 3, 1]
- 입력받은 값을 스택에 하나씩 저장
- 만약 스택의 사이즈가 4이상이면, 햄버거를 만들 수 있는 지 하나씩 확인 (
[1,2,3,1]
을 가지는지 확인)
- 만약 햄버거를 만들 수 있다면 result를 증가시킨 후, 해당 스택에서 4개를 삭제
코드
import java.util.Stack;
public class Hamburger {
public int solution(int[] ingredient) {
int result = 0;
Stack<Integer> stack = new Stack<>();
for (int in : ingredient) {
stack.push(in);
if (stack.size() >= 4) {
int size = stack.size();
if(stack.get(size - 1) == 1
&& stack.get(size - 2) == 3
&& stack.get(size - 3) == 2
&& stack.get(size - 4) == 1) {
result++;
stack.pop();
stack.pop();
stack.pop();
stack.pop();
}
}
}
return result;
}
public static void main(String[] args) {
Hamburger divideString = new Hamburger();
System.out.println(divideString.solution(new int[]{2, 1, 1, 2, 3, 1, 2, 3, 1}));
System.out.println(divideString.solution(new int[]{1, 3, 2, 1, 2, 1, 3, 1, 2}));
}
}