본문 바로가기

ALGORITHM/OTHER

12789 도키도키 간식드리미

https://www.acmicpc.net/problem/12789

 

12789번: 도키도키 간식드리미

인하대학교 학생회에서는 중간, 기말고사 때마다 시험 공부에 지친 학우들을 위해 간식을 나눠주는 간식 드리미 행사를 실시한다. 승환이는 시험 기간이 될 때마다 간식을 받을 생각에 두근두

www.acmicpc.net

 

한 명씩만 설 수 있는 공간이 매우 스택을 쓰고싶게 생겨서 오랜만에 스택을 써서 구현

#include <iostream>
#include <vector>
#include <stack>
using namespace std;

vector<int> student;
stack<int> temp;

int main() {
	int N, input, out = 1, i = 0;
	cin >> N;
	for (int i = 0; i < N; i++) {
		cin >> input;
		student.push_back(input);
	}
	while (1) {
		if (i < N && student[i] == out) {
			i++;
			out++;
		}
		else if (!temp.empty() && temp.top() == out) {
			out++;
			temp.pop();
		}
		else if (i < N) {
			temp.push(student[i]);
			i++;
		}
		else if (out > N) {
			cout << "Nice";
			return 0;
		}
		else {
			cout << "Sad";
			return 0;
		}
	}
}