programmers.co.kr/learn/courses/30/lessons/42584

 

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

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

programmers.co.kr

초단위로 주식의 가격을 담은 int[] prices가 주어진다. (인덱스 한 칸 당 1초)

각 초를 시점으로 하여 주식 가격이 몇 초 동안 떨어지지 않는지 기록한 배열을 반환해야한다.

 

주의할 점은 1초 뒤에(바로 다음 인덱스에서) 가격이 떨어지는 경우는 1초 동안 떨어지지 않은 것으로 본다.

마지막 인덱스는 그 뒤의 가격이 존재하지 않기 때문에 0초로 한다.

 

 

풀이 .

class Solution {
    public int[] solution(int[] prices) {
        int[] answer = new int[prices.length];
        for(int i = 0; i < prices.length; i++) {
            int time = 0;
            for(int j = i + 1; j < prices.length; j++) {
                // 다음 초에 가격이 떨어지더라도 그 초까지는 카운트를 해야한다
                time++;
                // 가격이 떨어지면 카운트 중지
                if(prices[i] > prices[j]) {
                    break;
                }
            }
            answer[i] = time;
        }
        return answer;
    }
}

 

주석으로 표시한 사항만 조심하면 되는 문제

'알고리즘 문제 > 프로그래머스' 카테고리의 다른 글

[PG] 다리를 지나는 트럭 JAVA  (0) 2020.12.28
[PG] 기능 개발 JAVA  (0) 2020.12.28
[PG] 베스트 앨범 JAVA  (0) 2020.12.28
[PG] 위장 JAVA  (0) 2020.12.27
[PG] 전화번호 목록 JAVA  (0) 2020.12.27

+ Recent posts