본문 바로가기

프로그래머스

프로그래머스 - 같은 숫자는 싫어

내 코드 - Deque 사용

import java.util.*;

public class Solution {
public int[] solution(int []arr) {
int[] answer = {};

/**
* Deque 자료구조 사용
*/
Deque<Integer> deque = new ArrayDeque<>();

for (int i = 0; i < arr.length; i++) {
if (i == 0) {
deque.push(arr[i]);
} else {
if (deque.getLast() != arr[i]) {
/**
* 주의
*
* deque.push()는 앞부분에 자료 삽입
* deque.add()는 뒷부분에 자료 삽입
*/
deque.add(arr[i]);
}
}
}

answer = new int[deque.size()];
int idx = 0;
Iterator<Integer> iterator = deque.iterator();

while (iterator.hasNext()) {
answer[idx] = iterator.next();
idx++;
}

return answer;
}
}


다른 사람 코드 - temp = -1이라는 값을 주었음

import java.util.*;

public class Solution {
public int[] solution(int []arr) {
List<Integer> list = new ArrayList<>();

/**
* temp를 -1로 줘서
* i = 0 분기를 만들지 않고 깔끔하게 해결
*/
int temp = -1;

for(int i: arr) {
if(temp == i) {}
else list.add(i);
temp = i;
}

int[] result = new int[list.size()];

for(int i=0; i<list.size(); i++)
result[i] = list.get(i);

return result;
}
}