연속적으로 나타나는 숫자는 하나만 남기고 남은 숫자는 출력하지 않음. 단, hashSet처럼 중복이 아예 없는 게 아니고 <연속적인 같은 수> 가 없는 것임
왜 hashSet을 굳이 강조했냐면!!
내가실수를했기때문이다 하하...
그리고 해당 문제는 스택/큐라고 명시가 되어있어서
이번 문제는 stack으로 풀어보았다!!
import java.util.*;
public class Main {
public int[] solution(int []arr) {
Stack<Integer> stArr = new Stack<>();
for (int i = 0; i < arr.length; i++) {
//스택이 비어있으면 무조건 arr[i]
if(stArr.isEmpty()) {
stArr.push(arr[i]);
//스택이 지금 바라보고 있는 마지막이 arr[i]와 다르다면
} else if(!(stArr.peek().equals(arr[i]))) {
//추가
stArr.push(arr[i]);
}
}
int[] answer = new int[stArr.size()];
//스택은 후입선출이니까 마지막부터
for (int i = answer.length - 1; i >= 0; i--) {
answer[i] = stArr.peek();
//값 추가 후 pop 연산으로 현재 값(peek)를 다음으로 넘김
stArr.pop();
}
return answer;
}
}
성공!!!