프로그래머스 Lv.0 배열 만들기 4

문제 설명
정수 배열 arr가 주어진다.
arr를 이용해 새로운 배열 stk를 만드려고 한다.
변수 i를 만들어 초기값을 0으로 설정한 후
i가 arr의 길이보다 작으면 다음 작업을 반복한다.
- stk가 빈 배열이라면 arr[i]를 추가하고 i++;
- stk에 원소가 있고 마지막 원소가 arr[i]보다 작으면 arr[i]를 추가하고 i++;
- stk에 원소가 있고 마지막 원소가 arr[i]보다 크거나 같으면 마지막원소를 stk에서 제거
위 작업 후 만들어진 stk를 return하라.
1 ≤ arr의 길이 ≤ 100,000
1 ≤ arr의 원소 ≤ 100,000
arr | result |
[1, 4, 2, 5, 3] | [1, 2, 3] |
** 풀이 방법
배열 만들기 6과 풀이 방법이 똑같다.
차이점 이라면
arr[i]와 stk원소의 크기 비교를 한다는 점!
그리고 arr[i]보다 크거나 같을 때는
i++를 하지 않는다.
ㅂㅏ로 전체코드~
<> 전체 코드 </>
import java.util.*;
class Solution {
public List<Integer> solution(int[] arr) {
List<Integer> stk = new ArrayList<>();
int i=0;
while (i<arr.length) {
if (stk.size()==0) {
stk.add(arr[i]);
i++;
} else {
if (stk.get(stk.size()-1) < arr[i]) {
stk.add(arr[i]);
i++;
} else {
stk.remove(stk.size()-1);
}
}
}
return stk;
}
}
반응형
'개발로그 > 알고리즘' 카테고리의 다른 글
프로그래머스 Lv.0 치킨 쿠폰 (0) | 2023.08.03 |
---|---|
프로그래머스 Lv.0 배열 만들기 2 (0) | 2023.07.31 |
프로그래머스 Lv.0 배열 만들기 6 (0) | 2023.07.31 |
프로그래머스 Lv.0 특이한 정렬 (0) | 2023.07.30 |
프로그래머스 Lv.0 다항식 더하기 (0) | 2023.07.30 |
댓글