반응형
- 첫 풀이 및 정답풀이
문제에서 주어지는 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;
}
}
반응형