본문 바로가기
코딩테스트/프로그래머스

[스택/큐] Level 2 주식가격

by 의정부핵꿀밤 2022. 1. 6.
728x90

문제 설명

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

 

제한 사항

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

 

입출력 예시와 설명


[풀이]

오 이 문제 진짜 간단해

라고 하기엔 한번 대차게 틀림ㅋㅋㅋㅋㅋㅋㅋ

문제 이해를 대충하고 풀었다가 깜짝놀랐네,,,

 

알고리즘은 간단하다

그냥 반복문 돌면서 지금 원소보다 다음 원소가 작으면 가격이 떨어진거니까 그 전까지 몇번의 원소가 있었는지 구하기만 하면 된다

그래서 걍 개수 세다가 다음 원소가 더 작으면 반복문 탈출하는 식으로 했고, 중첩 반복문 써서 구현함!

 

 

파이썬 코드)

def solution(prices):
    answer = []
    for i in range(len(prices)):
        count = 0
        for j in range(i+1, len(prices)):
            count += 1
            if prices[i]>prices[j]:
                break
        answer.append(count)
    return answer

쉽쥬?

 

 

C++ 코드)

#include <string>
#include <vector>

using namespace std;

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

스택, 큐 문젠데 스택 큐 안쓰고 풀기~

근데 이렇게 푸는게 훨씬 간단해서 그냥 풀어도 될듯??

 

728x90

댓글