Make Unreal REAL.
article thumbnail
Level 2. 주식가격

 

 

가장 간단한 방식이지만 효율은 좋지 않다.

 

#include <iostream>
#include <vector>

using namespace std;

vector<int> solution(vector<int> prices)
{
    size_t n = prices.size();
    vector<int> answer(n, 0);

    for (int i = 0; i < n; ++i)
        for (int j = i; (j < n - 1) && (prices[i] <=prices[j]); ++j)
            ++answer[i];

    return answer;
}

 

인접한 두 가격 사이에 감소하는 지점을 찾은 후, 해당 감소 지점보다 낮은 이전 가격을 찾아가는 방식이다.

 

#include <iostream>
#include <vector>
#include <stack>

using namespace std;

vector<int> solution(vector<int> prices)
{
    vector<int> answer(prices.size());
    stack<int> stck;
    int size = prices.size();

    for (int i = 0; i < size; ++i)
    {
        while (!stck.empty() && prices[i] < prices[stck.top()])
        {
            answer[stck.top()] = i - stck.top();
            stck.pop();
        }

        stck.emplace(i);
    }

    while (!stck.empty())
    {
        answer[stck.top()] = size - stck.top() - 1;
        stck.pop();
    }

    return answer;
}

'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글

Level 2. 소수 찾기  (0) 2023.06.07
Level 2. 땅따먹기  (0) 2023.06.06
Level 2. [3차] 압축  (0) 2023.06.04
Level 2. k진수에서 소수 개수 구하기  (0) 2023.06.03
Level 2. [3차] n진수 게임  (0) 2023.06.02
profile

Make Unreal REAL.

@diesuki4

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그