코딩테스트 (스택/ 큐) - 주식가격

김찬울·2021년 7월 25일
0

출처 프로그래머스 코딩테스트 연습 스택/큐 주식가격

쉬운 문제라 문제 설명은 간단하다 매초마다 주가를 저장해둔 리스트 prices를 가지고
1초부터 len(prices) 초 사이에서 각각의 주가들이 몇 초동안 현재가격을 유지하거나 상승하였는 지를 찾는 것이다.

일단 한 세가지를 짰는데 어떻게든 O(n^2)이 될 수 밖에 없었다.
그 이유는 자기자신 이후를 검색해서 자신보다 작은 값을 걸러내야 하는 탓 때문이다.

본 코드에서는 lambda라서 O(n^2)을 그대로 따르지만 for문으로 작은 값을 만났을 때 그 값을 저장하고
break를 한다면 생각보다 빠르게 돌릴 수 있을 것으로 보인다.

큐의 구조를 활용하여 0번째 인덱스 즉 1초 시점이 얼마나 유지하였는지를 검사한 후 추가를 한다.
추가를 하면 더이상 1초는 필요 없기에 pop을 통해 추출한다면 0번째 값밖에 안 건드림에도 리스트를 줄여나가면서 큐를 활용하게된다!

profile
코린코린이

0개의 댓글