[알고리즘문제풀기] 배열 만들기 4

silver's avatar
Oct 04, 2025
[알고리즘문제풀기] 배열 만들기 4

문제

내가 작성한

오답

:3번째 조건에 따르면 stk의 마지막 원소가 크거나 같으면 마지막 원소를 제거하라고 했지 i++하라고 안했다
notion image
class Solution { public int[] solution(int[] arr) { ArrayList<Integer> stk = new ArrayList<>(); for(int i=0; i<arr.length; i++){ if(stk.isEmpty()) stk.add(arr[i]); else { if(stk.get(stk.size()-1)<arr[i]) stk.add(arr[i]); else stk.remove(stk.size()-1); } } return stk.stream().mapToInt(i->i).toArray(); } }

정답

import java.util.*; class Solution { public int[] solution(int[] arr) { ArrayList<Integer> stk = new ArrayList<>(); int i = 0; while(i<arr.length){ if(stk.isEmpty()) { 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.stream().mapToInt(a->a).toArray(); } }

다른 사람들의 정답

: stack이용
import java.util.*; class Solution { public Stack<Integer> solution(int[] arr) { Stack<Integer> stack = new Stack<>(); int i = 0; while (i < arr.length) { if (stack.empty() || stack.peek() < arr[i]) { stack.push(arr[i]); i++; } else if (stack.peek() >= arr[i]) { stack.pop(); } } return stack; } }
Share article

silver