programmers.co.kr/learn/courses/30/lessons/42584
초단위로 주식의 가격을 담은 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 |