Algorithm/Programmers(c++)

[c++][프로그래머스] 주식 가격

kim-hasa 2021. 8. 13. 16:38

https://programmers.co.kr/learn/courses/30/lessons/42584?language=cpp 

 

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

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

programmers.co.kr

초단위의 주식 가격이 떨어지지 않은 기간이 몇 초인지를 체크하는 문제입니다.

 

가장 먼저 맨 마지막을 제외하고 반복문을 돌립니다.

 

초기값을 정해두고 그 다음 값부터 차례대로 비교합니다. 비교해서 초기값보다 크다면 카운트를 증가시킵니다.

 

그러다가 초기값보다 작은 값이 나오는 경우, 그때까지의 카운트를 배열에 넣습니다.

 

마지막값은 무조건 0이므로, 0을 추가해주면 끝!

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> prices) {
    vector<int> answer;
    int len = prices.size();
    int priceCount = 0;
    for(int i=0; i<len-1; i++)
    {
        int firstPrice = prices[i];     // 초기 값 저장
        for(int j=i+1; j<len; j++)
        {
            priceCount++;
            if(firstPrice > prices[j])  // 다음 값이 처음보다 작을 경우 -> 감소했을경우
            {
                break;
            }
        }
        answer.push_back(priceCount);
        priceCount = 0;
    }
    answer.push_back(0);        // 마지막 값은 무조건 0
    
    return answer;
}