풀이 소요시간 : 25분
stack
을 사용하는 간단한 자료구조 문제다. 어렵지는 않았지만 반복문 탈출 구현과정에서 약간의 실수가 있었다. 실수 없이 구현하는 연습을 더 해야겠다.
#include <string>
#include <stack>
#include <vector>
using namespace std;
int N;
stack<int> Stack;
int Count = 0;
int solution(vector<int> order) {
N = order.size();
int num = 1;
for(int i = 0; i < N; i++) {
while(true)
{
if(num < order[i])
{
Stack.push(num);
num++;
continue;
}
else if(num == order[i])
{
Count++;
num++;
break;
}
else
{
if(Stack.size() > 0 && Stack.top() == order[i])
{
Count++;
Stack.pop();
break;
}
else
{
goto result;
}
}
}
}
result :
return Count;
}