문제 설명
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;
}
}
반응형
'알고리즘' 카테고리의 다른 글
알고리즘 / Java / 프로그래머스 - 여행경로 (0) | 2020.09.02 |
---|---|
알고리즘 / Java / 프로그래머스 - 단어 변환 (0) | 2020.09.01 |
알고리즘 / Java / 2020 카카오 블라인드 / 가사 검색 (0) | 2020.08.08 |
알고리즘 / [java] 2020 카카오 블라인드 테스트 / 괄호 변환 (0) | 2020.07.26 |
알고리즘 / [java] 기능개발 / 프로그래머스 (1) | 2020.06.05 |