Stack을 통해 중복값 제거.
import java.util.*;
public class Solution {
public Stack<Integer> solution(int []arr) {
Stack<Integer> stack = new Stack<>();
for(int num : arr) {
if(stack.size() == 0 || stack.peek() != num) {
stack.push(num);
}
}
return stack;
}
}
Stack<Integer>
로 변경했다.Stack<Integer>
에서 int[]
로 변경하는 코드가 불필요하게 증가해 변경하는 편이 효율적이어 보였다.Stack
의 가장 위의 값을 비교하기위해, Stack
이 비어있는 경우가 문제가 되었다.java.util.Stack
클래스로 구현되어 있음.push(E item)
: 스택의 맨 위에 데이터를 추가pop()
: 스택의 맨 위 데이터를 꺼내고 제거peek()
: 스택의 맨 위 데이터를 조회만 하고 제거하지 않음.empty()
: 스택이 비어있는지 확인search(Object o)
: 스택에서 특정 객체의 위치(index)를 찾음