티스토리 뷰

Algorithm/Solution

[프로그래머스] - 주식가격

기내식은수박바 2019. 11. 27. 23:24
반응형

문제

 

조건

 

입출력 예제

 

솔루션

  1. 주식 정보를 저장하는 Stock 클래스를 만들었다.
    • Why ?) 인덱스와 가격을 함께 다루기 위해서.
  2. Stock 객체를 다루는 스택 자료구조를 사용하였다.
  3. prices의 길이만큼 반복문을 수행한다.
    1. 스택이 비어 있거나 (아직 아무것도 담겨 있지 않거나 이전에 가격이 최하로 떨어져 스택이 모두 비워진 경우), 현재 스택의 맨 꼭대기에 있는 주식 가격이 현재 비교하려는 i번째의 prices[i] 보다 크지 않다면 (주식 가격이 내려가지 않았다는 의미), 스택에 현재 비교하려는 주식을 넣어준다 (Push()).
    2. 현재 스택의 꼭대기에 있는 주식의 가격이 더 크다면, 스택 내 주식 가격이 작아지거나 스택이 빌때까지 스택에서 뽑아낸다 (Pop()). 그리고 뽑아낸 주식이 지속된 시간현재 위치인 i에서 주식의 인덱스 (temp.idx) 를 뺀 값이므로 (i - temp.idx) 계산한 결과 값을 각 answer[temp.idx]에 넣어준다. 
    3. 그리고 비교한 주식을 스택에 집어넣는다. 현재 비교한 주식도 이후에 나오는 주식과 비교하여 유지된 시간을 측정해야 하기 때문이다.
  4. 반복문을 빠져나온 후, 스택에 아직 주식이 남아있다면 스택내 주식들은 prices의 총 길이 - 1 (인덱스이므로 -1) 에서 각 주식들의 인덱스 값을 뺀 것이 유지된 시간이다. 따라서, 그 시간을 answer 배열의 각 주식 인덱스에 넣어준다 (answer[temp.idx]).

 

Code

주식의 인덱스와 가격을 저장하는 객체를 만드는 Stock 클래스

solution 함수

 

결과

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함