가랑비에 옷 젖는 줄 모른다 💻/🌰코테문풀_꾸준히
[0단계] 배열 만들기 4
잔뜩
2025. 1. 17. 15:41
특정 조건일 때 i에 1을 더하라는 말이 없어서 i--; 처리를 안해줬더니 계속 틀렸음
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
List<Integer>list = new ArrayList<>();
for(int i =0; i<arr.length; i++){
if(list.isEmpty()){
list.add(arr[i]);
} else if(!list.isEmpty()){
if(list.get(list.size()-1)<arr[i]){
list.add(arr[i]);
}else if(list.get(list.size()-1)>=arr[i]){
list.remove(list.size()-1);
i--;
}
}
} //for믄
int[] stk = new int [list.size()];
for(int j =0; j<list.size();j++){
stk[j] = list.get(j);
}
return stk;
}//solution
} //class
사실 리스트에 값 추가, 제거 는 push,pop 스택을 아냐 모르냐 이지 않을까 싶음
import java.util.*;
class Solution {
public int[] solution(int[] arr) {
Stack<Integer> stack = new Stack<>();
for (int num : arr) {
// 스택이 비어있거나, 마지막 값이 현재 값보다 작으면 추가
while (!stack.isEmpty() && stack.peek() >= num) {
stack.pop(); // 조건에 맞지 않으면 제거
}
stack.push(num); // 현재 값을 스택에 추가
}
// 결과를 배열로 변환
int[] stk = new int[stack.size()];
for (int i = 0; i < stack.size(); i++) {
stk[i] = stack.get(i); // Stack을 배열로 변환
}
return stk;
}
}
stack.peek()는 스택(Stack) 자료 구조에서 가장 최근에 추가된(스택의 맨 위에 있는) 요소를 반환하는 메서드입니다.
스택은 Last In, First Out (LIFO)
728x90