해당 문제는 현재 인덱스의 주식 가격이 이후의 주식 가격보다 높아지는 경우가 있는지 확인하는 코드이다.
직관적으로 생각했을 때에는 중첩 반복문을 이용하여 모든 인덱스를 검사하는 완전탐색 알고리즘을 통해 문제를 해결할 수 있다.
prices | return |
---|---|
[1, 2, 3, 2, 3] | [4, 3, 1, 1, 0] |
해당 코드에서 제한사항에는 prices의 길이가 100,000
이 될 수 있음을 암시한다.
만약, for문을 최적화하지 않는다면, 100,000 * 100,000
의 실행 횟수가 일어날 위험성이 있으므로, 최적화를 하거나, 다른 방법을 이용하여 풀이에 접근해야 한다.
O(n^2)
간단히 각 인덱스를 늘려가며, 현재의 값 이후에 찾아지는 낮은 값이 확인된다면, 인덱스의 차이를 이용해서 얼마나 주식 가격이 유지되었는지 answer 배열에 기록한다.
이때, break문
과 중첩된 내부 반복문의 인덱스를 고려하여, 최소한의 실행이 이뤄지도록 구성한다.
[pseudo code]