초 단위로 주식 가격이 입력으로 주어졌을 때 매 초의 주식 가격이 떨어지지 않은 시간을 출력하는 문제다.
처음엔 배열을 사용하면 풀 수 없을거라고 생각했었는데 다른 분의 풀이를 참고해서 배열을 이용해서 문제를 해결했다. 주식 가격의 수를 길이로 하는 배열을 생성하고, 각 요소가 최대로 가질 수 있는 값으로 초기화 해주었다. 그리고 각 요소의 자리에서 이후 요소의 주식 가격을 확인하면서 주식 가격이 떨어진 경우에는 흘러간 시간으로 값을 업데이트 해주었다.
function solution(prices) {
const len = prices.length
const answer = Array.from({length: len}, (_,i) => len - i - 1)
for (let i = 0; i < prices.length; i++) {
for (let j = i + 1; j < prices.length; j++) {
if (prices[i] > prices[j]) {
answer[i] = Math.min(answer[i], j - i)
break
}
}
}
return answer
}
출처
프로그래머스 - 주식가격
https://school.programmers.co.kr/learn/courses/30/lessons/42584