import java.util.ArrayList;
class Solution {
public int[] solution(int[] arr) {
ArrayList<Integer> tmp= new ArrayList();
int i=0;
while(i<arr.length){
if(tmp.size()==0){
tmp.add(arr[i]);
i=i+1;
}
else{
int last=tmp.get(tmp.size()-1);
if(tmp.size()!=0 && last<arr[i]){
tmp.add(arr[i]);
i=i+1;
}
else if(tmp.size()!=0 && last>=arr[i]){
tmp.remove(tmp.size()-1);
}
}
}
int stk[]=new int[tmp.size()];
for(int k=0;k<tmp.size();k++){
stk[k]=tmp.get(k).intValue();
}
return stk;
}
}
tmp가 비어있는 경우, arr[i]를 tmp에 추가하고 i를 1 증가시킵니다.
tmp가 비어있지 않은 경우, tmp의 마지막 원소 last와 arr[i]를 비교합니다.
last가 arr[i]보다 작다면, arr[i]를 tmp에 추가하고 i를 1 증가시킵니다.
last가 arr[i]보다 크거나 같다면, tmp의 마지막 원소를 제거합니다.
tmp의 내용을 배열로 변환하여 stk 배열에 저장 한 후 반환합니다.