주식가격(프로그래머스)
문제 이해
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
입출력 예
prices return
[1, 2, 3, 2, 3][4, 3, 1, 1, 0]
나만의 이해
사실 문제가 많이 난해하다. 나만 그런지는 모르겠지만 초 기준 시점이 매우 혼란스러웠다. 질문하기 칸에 써져있는 설명을 보고 prices 원소당 자기보다 큰 원소 갯수를 구하는 문제로 이해했고 만약 없으면 자기 자신만 하나 세어주면 된다. 마지막 인덱스에 있는 원소는 뒤에 시점이 없으니깐 0을 주면 된다.
Python
from collections import deque
def solution(prices):
queue = deque(prices)
answer = []
while queue:
price = queue.popleft()
sec = 0
for q in queue:
sec += 1
if price > q:
break
answer.append(sec)
return answer
파이썬으로는 deque 함수를 이용했다. Popleft를 하면 인덱스 슬라이싱과 똑같은 기능을 해준다 [1:] 이런식으로. 그래서 하나씩 짤라가면서 카운트해서 결과를 리스트로 넣어 반환해주었다.
C++
#include <string>
#include <vector>
using namespace std;
vector<int> solution(vector<int> prices) {
vector<int> answer;
for (int i=0; i<prices.size();i++){
int check =0;
for (int t = i+1; t<prices.size(); t++){
check +=1;
if (prices[i]> prices[t]){
break;
}
}
answer.push_back(check);
}
return answer;
}
CPP으로는 이중 for문을 사용해서 작성했다. 이것 역시 인덱스 기반으로 순회하면서 하나씩 push_back 해주고 반환해주면 된다.
Author And Source
이 문제에 관하여(주식가격(프로그래머스)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@happyfran67/주식가격프로그래머스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)