https://school.programmers.co.kr/learn/courses/30/lessons/12906
문제
배열 arr가 주어질 때, 연속된 수를 제거한 배열을 리턴해라.
[1, 1, 1, 2, 3]일 경우 [1, 2, 3]으로 리턴.
풀이
큐에 값을 모두 집어넣은 뒤 하나씩 빼온다. 이때 이전의 값을 저장하는 memory랑 같이 다를 경우에만 값을 배열에 넣는다.
코드
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
StringBuilder sb = new StringBuilder();
int memory = -1;
Queue<Integer> queue = new LinkedList<>();
for(int i=0; i<arr.length; i++){
queue.add(arr[i]);
}
while(!queue.isEmpty()){
int now = queue.poll();
if(memory != now){
sb.append(now);
memory = now;
}
}
String str = sb.toString();
int[] answer = new int[str.length()];
for(int i=0; i<str.length(); i++){
answer[i] = str.charAt(i) - '0';
}
return answer;
}
}