99클럽 코테 스터디 15일차 TIL
💙 JAVA 비기너
import java.util.*;
public class Solution {
public Integer[] solution(int []arr) {
Integer[] answer = {};
Queue<Integer> queue = new LinkedList<>();
int last = 10;
for(int num : arr) {
if(last != num) queue.add(num);
last = num;
}
answer = queue.toArray(new Integer[queue.size()]);
return answer;
}
}
문제가 스택/큐로 분류되어있어서 큐를 이용하여 풀었다.
foreach문으로 arr
을 돌 때, 바로 앞에 있던 숫자 last
와 추가하려는 숫자 num
이 동일하지 않을 경우에만 queue
에 추가해줬다.
이 때 last
를 0으로 설정해줬더니 오답이었다.
프로그래머스 AI 코드 피드백이란 게 있어서 물어보니
이렇게 깔끔하게 답변을 해줬다. (요즘 세상 많이 좋아졌다.)
배열 arr의 원소의 크기는 0보다 크거나 같고 9보다 작거나 같은 정수이므로 원소로 들어올 수 없는 10으로 last
를 선언해주었다.
ArrayList.toArray(new Object[])
를 통해 queue
에 있는 값들을 Integer[] answer
에 넣어줬다.
이 때, ArrayList.toArray(new Object[])
는 Object로만 변경이 되므로 int대신 Integer로 사용해줬다.
6점 뿌듯! 🥰