본문 바로가기

코딩테스트 연습/programmers

[Programmers] 스택/큐 > 주식 가격

스택/큐 - 주식 가격

https://programmers.co.kr/learn/courses/30/lessons/42584

 

코딩테스트 연습 - 주식가격

초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00

programmers.co.kr

time벡터는 연산이 아무것도 이루어지지 않을경우 초기값으로 (price-1)부터 0까지 저장한다.
만약 prices[i]보다 뒤에오는 prices[j]값이 더 작은것이 있을 경우, time[i]에는 j부터 i까지의 시간초 범위를 저장한다.

코드

#include <string>
#include <vector>
#include <iostream>

using namespace std;

vector<int> solution(vector<int> prices) {
    vector<int> time;

    for(int i=prices.size()-1;i>=0;i--) time.push_back(i);
    for(int i=0;i<time.size();i++){
        for(int j=i+1;j<time.size();j++){
            if(prices[i] > prices[j]) {
                time[i] =  j-i;
                break;
            }
        }
    }

    return time;
}

int main(int argc, const char *argv[])
{

    vector<int> prices;
  
//    prices.push_back(1);
//    prices.push_back(2);
//    prices.push_back(3);
//    prices.push_back(2);
//    prices.push_back(3);
//
    prices.push_back(1);
    prices.push_back(2);
    prices.push_back(3);
    prices.push_back(2);
    prices.push_back(3);
    prices.push_back(1);
    
    solution(prices);
    
    return 0;
}