https://school.programmers.co.kr/learn/courses/30/lessons/133502#
이 문제는 스택을 이용하면 쉽게 해결할 수 있다.
햄버거를 만들 수 있는 방법은 뒤에서 부터 1 3 2 1 순서로 재료가 쌓여야한다.
따라서 빵인 1이 나오고 스택에 4개 이상 쌓였을 때 뒤에서부터 재료를 4개 꺼내 1 3 2 1순서로 재료가 나오면 햄버거 수를 1증가시킨다.
재료가 나오지 않으면 다시 스택에 넣으면 된다.
#include <string>
#include <vector>
using namespace std;
vector<int> box;
int solution(vector<int> ingredient) {
int answer = 0;
for(int i = 0;i<ingredient.size();i++){
box.push_back(ingredient[i]);
if(ingredient[i] == 1 && box.size() > 3){
int t1 = box.back();
box.pop_back();
int t2 = box.back();
box.pop_back();
int t3 = box.back();
box.pop_back();
int t4 = box.back();
box.pop_back();
if(t1 == 1 && t2 == 3 && t3 == 2 && t4 == 1)
answer++;
else{
box.push_back(t4);
box.push_back(t3);
box.push_back(t2);
box.push_back(t1);
}
}
}
return answer;
}
'Programmers Review' 카테고리의 다른 글
[Lv 1] 문자열 나누기 (0) | 2024.06.08 |
---|---|
[Lv 1] 기사단원의 무기 (0) | 2024.06.08 |
[Lv 1] 옹알이 (2) (0) | 2024.06.08 |
[Lv 1] 콜라 문제 (0) | 2024.06.07 |
[Lv 1] 로또의 최고 순위와 최저 순위 (0) | 2024.06.07 |