코딩테스트/프로그래머스
[스택/큐] 같은 숫자는 싫어 - JAVA
의정부핵꿀밤
2022. 8. 19. 13:10
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12906
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
이 문제는 연속적으로 중복되는 숫자만 제거하면 된다
처음에는 아예 중복 자체를 없애야 하는 줄 알고 Stack 이용해서 contains가 false일 때만 추가하는 식으로 했는데 그러면 모든 중복이 사라지게 된다
그래서 이전 값을 저장하는 변수를 이용해서 그 값과 다른 경우에만 리스트에 추가하는 방식으로 구현했다
그 후 배열로 반환해야 하기 때문에 리스트를 stream 함수를 이용해서 배열로 변환해서 반환한다
자바 코드)
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
List<Integer> answer = new ArrayList<>();
int value = -1;
for(int i=0;i<arr.length;i++) {
if(arr[i] != value) {
answer.add(arr[i]);
value = arr[i];
}
}
return answer.stream().mapToInt(i->i).toArray();
}
}
728x90