[C++] 프로그래머스 Level 2 : 주식가격

Kim Nahyeong·2022년 10월 26일
0

프로그래머스

목록 보기
32/38

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

using namespace std;

vector<int> solution(vector<int> prices) {
    vector<int> answer(prices.size()); // vector<> v(사이즈);
    
    for(int i = 0; i < prices.size(); i++){
        for(int j = i+1; j < prices.size(); j++){
            if(prices[i] <= prices[j]){
                answer[i]++;
            } else {
                answer[i]++; // 처음 그 가격되면 가격 안 떨어지는 거 1초로 봄
                break;
            }
        }
    }
    
    return answer;
}

스택 문제인데 스택 안 씀.

주의 사항은 3, 2 이렇게 변할때 1초라고 체크해야한다는 것이다.
하지만 마지막 숫자는 또 안셈 요상한 문제.

stack을 사용하는 코드도 있는데 너무 이해가 안간다...

대신 이 분이 사용한 큐를 사용하는 것이 훨씬 이해하기 쉬웠음!
큐를 사용한 코드
큐의 첫째 값과 끝 값을 비교하면서 인덱스로 숫자를 구한다. 인덱스를 찾는 for문이 시간복잡도를 늘린다면 그냥 pair를 써서 인덱스를 함께 저장시켜도 좋을 것 같다.

0개의 댓글