Programmers 42584 주식가격
in Algorithm
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42584
나의 풀이
가격이 떨어지기 전까지 해당하는 index를 따로 관리한다.
가격이 떨어지면 해당하는 index와 현재 위치를 나타내는 index의 차이를 계산하여 answer에 넣는다.
ex) [10, 7, 11, 1, 16, 5]에서 1번 index 7은 3번 index에서 주식가격 1로 가격이 떨어진다. 이 때 1번 index의 가격이 떨어지지 않은 기간은 3-1 = 2 이다.
가격이 떨어지지 않은 경우 마지막을 기준으로 모두 계산해준다.
풀이 코드 : 42584 주식가격
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> prices) {
vector<int> answer(prices.size());
vector<int> index;
for(int i = 0;i<prices.size();i++){
for(int j=0;j<index.size();j++){
if(prices[index[j]] > prices[i]){
answer[index[j]] = i-index[j];
index.erase(index.begin() + j);
j--;
}
}
index.push_back(i);
}
for(int i = 0;i<index.size();i++){
answer[index[i]] = prices.size() - index[i] - 1;
}
return answer;
}