본문 바로가기
알고리즘 공부/프로그래머스 [C++]

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

by 이포터 2022. 10. 31.

문제 링크

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

 

문제 설명

1. 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어진다.
2. 가격이 떨어지지 않은 기간은 몇 초인지를 return 하시오.

 

문제 입출력 예)

prices return
[1, 2, 3, 2, 3] [4, 3, 1, 1, 0]

 

문제 풀이

  1. 문제를 이해하는데 오랜 시간이 걸렸다...
  2. 매번 실행일 경우 count를 더해주고
  3. 가격이 커 질경우 break를 걸어줘서 끝내는 코드를 작성하였다.
#include <string>
#include <vector>
#include <stack>
#include <iostream>
using namespace std;

vector<int> solution(vector<int> prices) {
    stack<int> answer;
    vector<int> result;
    int count = 0;
    for(int i=0; i<prices.size(); i++){
        count = 0;
        answer.push(prices[i]);
        for(int j=1+i; j<prices.size(); j++){
            count++;
            if(answer.top() > prices[j]){
                break;
            }    
        }
        result.push_back(count);
    }
    
    
    return result;
}

 

리뷰

  • 가격이 떨어지지 않은 기간을 구하는 것이라서
  • 가격이 떨어진 구간이 발생 했을 경우 break를 걸어야했다.

댓글