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

이제훈·2024년 1월 29일

알고리즘

목록 보기
7/23

문제 해석

초 단위로 주식 가격이 입력으로 주어졌을 때 매 초의 주식 가격이 떨어지지 않은 시간을 출력하는 문제다.

풀이

처음엔 배열을 사용하면 풀 수 없을거라고 생각했었는데 다른 분의 풀이를 참고해서 배열을 이용해서 문제를 해결했다. 주식 가격의 수를 길이로 하는 배열을 생성하고, 각 요소가 최대로 가질 수 있는 값으로 초기화 해주었다. 그리고 각 요소의 자리에서 이후 요소의 주식 가격을 확인하면서 주식 가격이 떨어진 경우에는 흘러간 시간으로 값을 업데이트 해주었다.

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

0개의 댓글