본문 바로가기

알고리즘

알고리즘 / [java] 주식가격 / 프로그래머스

프로그래머스 주식가격

 

코딩테스트 연습 - 주식가격

초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00

programmers.co.kr

문제 설명

int 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.

 

입출력 예시

prices return
[1, 2, 3, 2, 3] [4, 3, 1, 1, 0]

 

풀이

결국 prices의 요소마다 하나씩 꺼내서 해당 요소보다 값이 작은 요소의 값을 찾아 index값 차이를 리턴에 넣어주면 된다.

 시작 요소의 index  -  시작한 값보다 값이 작은 요소의 index  = 리턴에 들어갈 값

 

다만 주의 할 점은 마지막까지 값이 떨어지지 않았을 경우이다.

마지막 index에서의 방어로직을 추가해주어야 한다.

 

코드

class Solution {
    public int[] solution(int[] prices) {
        int[] answer = new int[prices.length];
        for (int i = 0; i < prices.length; i++) {
            for (int j = i; j < prices.length; j++) {
                if (prices[i] > prices[j]) {
                    answer[i] = j - i;
                    break;
                }
                if (j == prices.length - 1) {
                    answer[i] = j - i;
                }
            }
        }
        return answer;
    }
}
반응형