본문 바로가기

Programmers/C++

[Programmers/C++] 주식가격

1. 문제

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

  • prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
  • prices의 길이는 2 이상 100,000 이하입니다.

2. 풀이

자신의 위치보다 이후에 나오는 price 중 자신보다 작은 가격이 나올 때까지 cnt++를 하고, 끝까지 더해지는 경우는 -1을 해준다. 마지막 값은 비교를 진행할 price가 없으므로 0으로 값을 지정한다.

#include <iostream>
#include <vector>
using namespace std;

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

    for (int i = 0; i < len - 1; i++) {
        int cnt = 1, j;
        for (j = i + 1; j < len; j++) {
            if (prices[i] > prices[j]) {
                break;
            }
            cnt++;
        }
        if (j == len) cnt--;
        answer.push_back(cnt);
    }

    answer.push_back(0);

    return answer;
}

[참조]

programmers.co.kr/learn/courses/30/lessons/42584

 

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

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

programmers.co.kr

 

'Programmers > C++' 카테고리의 다른 글

[Programmers/C++] 프린터  (0) 2021.03.25
[Programmers/C++] 기능개발  (0) 2021.03.25
[Programmers/C++] 다리를 지나는 트럭  (0) 2021.03.25
[Programmers/C++] 베스트앨범  (0) 2021.03.24
[Programmers/C++] 위장  (0) 2021.03.24