[프로그래머스,Level 2] 주식가격(JAVA 구현)
코테/프로그래머스(Programmers)

[프로그래머스,Level 2] 주식가격(JAVA 구현)

반응형

- 첫 풀이 및 정답풀이

  문제에서 주어지는 prices배열은 1초가 지난 시점의 주식 가격이 담겨 전달되며, 문제에서 원하는 리턴 값은 각 초에 기록된 주식 가격이 몇 초 뒤에 낮아지는지에 대한 값이다. 시간은 뒤로 가지 않기 때문에 하나의 기준점을 잡고 해당 기준점의 나중에 기록된 주식가격을 비교해보면 된다.

ex) 1초의 가격 1 기준으로 2초,3초....5초의 가격들과 비교한다.

 

  리턴 값을 구하는 것은 비교지점의 인덱스 - 기준점의 인덱스로 구할 수 있으며 가격이 낮아지는 경우는 n초 뒤의 가격이 낮아지는 순간에 반복문을 벗어나면 구할 수 있다.   

 

class Solution {
    public int[] solution(int[] prices) {
        int[] answer = new int[prices.length];
        
        // 1. i는 기준점을 참조하는 인덱스
        for(int i = 0 ; i<prices.length;i++){
            // 2. j는 비교점을 참조하는 인덱스
            for(int j=i+1;j<prices.length;j++){
                // 3. 기본적으로 비교점 인덱스 - 기준점 인덱스
                answer[i] = j-i;
                // 4. 비교점의 가격이 낮아지면 더 이상의 비교는 수행하지 않고 반복문을 벗어난다.
                if(prices[i]>prices[j]) break;                 
            }
        }
        return answer;
    }
}
반응형