내 답안
import java.util.*;
class Solution {
public List<Integer> solution(int[] arr) {
List<Integer> list = new ArrayList<>();
int i = 0;
while (i < arr.length) {
if (list.size() == 0) {
list.add(arr[i]);
i++;
} else {
if (list.get(list.size() - 1) == arr[i]) {
list.remove(list.size() - 1);
i++;
} else {
list.add(arr[i]);
i++;
}
}
}
if (list.size() == 0) list.add(-1);
return list;
}
}
Java
복사
다른사람 풀이
import java.util.Stack;
class Solution {
public int[] solution(int[] arr) {
Stack<Integer> stack = new Stack<>();
for (int no : arr) {
if (!stack.isEmpty() && no == stack.peek()) {
stack.pop();
} else {
stack.push(no);
}
}
return stack.isEmpty() ? new int[] { -1 } : stack.stream().mapToInt(i -> i).toArray();
}
}
Java
복사