Programmers 42584 주식가격

로고 이미지

문제 링크 : 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;
}

채점결과

42587priter


© 2020. All rights reserved.

Powered by Hydejack v8.4.0