스택을 써도 되고, 큐를 써도 되고, 배열을 써도 되는 문제. 나는 머리속에서 가장 빨리 떠오른 방법으로 해결했다.
주식을 산 뒤, 기본적으로 1초는 보장된다. 그러니 time에 1값을 준뒤에 이중 for문으로 검사를 진행하면 된다.
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> prices) {
vector<int> answer;
int i = 0;
int j =0;
int time = 0;
while(i < prices.size() -1)
{
j = i + 1;
time = 1;
while(j < prices.size()-1)
{
if (prices[i] > prices[j])
break;
time++;
j++;
}
answer.push_back(time);
i++;
}
answer.push_back(0);
return answer;
}
스택이나 큐로 진행해도 되는거지만, 기본적인 처리속도는 같기에.(큰 while문이 돌때마다 작은 while문의 반복이 1씩 줄어들기에, 스택과 큐의 처리구조와 크게 다를것이 없음)