티스토리 뷰
반응형
문제
조건
입출력 예제
솔루션
- 주식 정보를 저장하는 Stock 클래스를 만들었다.
- Why ?) 인덱스와 가격을 함께 다루기 위해서.
- Stock 객체를 다루는 스택 자료구조를 사용하였다.
- prices의 길이만큼 반복문을 수행한다.
- 스택이 비어 있거나 (아직 아무것도 담겨 있지 않거나 이전에 가격이 최하로 떨어져 스택이 모두 비워진 경우), 현재 스택의 맨 꼭대기에 있는 주식 가격이 현재 비교하려는 i번째의 prices[i] 보다 크지 않다면 (주식 가격이 내려가지 않았다는 의미), 스택에 현재 비교하려는 주식을 넣어준다 (Push()).
- 현재 스택의 꼭대기에 있는 주식의 가격이 더 크다면, 스택 내 주식 가격이 작아지거나 스택이 빌때까지 스택에서 뽑아낸다 (Pop()). 그리고 뽑아낸 주식이 지속된 시간은 현재 위치인 i에서 주식의 인덱스 (temp.idx) 를 뺀 값이므로 (i - temp.idx) 계산한 결과 값을 각 answer[temp.idx]에 넣어준다.
- 그리고 비교한 주식을 스택에 집어넣는다. 현재 비교한 주식도 이후에 나오는 주식과 비교하여 유지된 시간을 측정해야 하기 때문이다.
- 반복문을 빠져나온 후, 스택에 아직 주식이 남아있다면 스택내 주식들은 prices의 총 길이 - 1 (인덱스이므로 -1) 에서 각 주식들의 인덱스 값을 뺀 것이 유지된 시간이다. 따라서, 그 시간을 answer 배열의 각 주식 인덱스에 넣어준다 (answer[temp.idx]).
Code
- 전체 코드 : https://github.com/SubAkBa/Algorithm_Chung_Son/blob/master/Programmers/Solution_stockprice.java
주식의 인덱스와 가격을 저장하는 객체를 만드는 Stock 클래스
solution 함수
결과
반응형
'Algorithm > Solution' 카테고리의 다른 글
[프로그래머스] - 프렌즈4블록 (0) | 2019.11.30 |
---|---|
[프로그래머스] - 카카오프렌즈 컬러링북 (0) | 2019.11.28 |
[프로그래머스] - 모의고사 (0) | 2019.11.27 |
[프로그래머스] - 탑 (0) | 2019.11.27 |
[프로그래머스] - 캐시 (0) | 2019.11.26 |
댓글