728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12906
이 문제는 연속적으로 중복되는 숫자만 제거하면 된다
처음에는 아예 중복 자체를 없애야 하는 줄 알고 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
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[SQL] JOIN 문제 (0) | 2022.09.01 |
---|---|
[연습문제] 콜라츠 추측 (0) | 2022.08.21 |
외벽점검 - JAVA (0) | 2022.08.17 |
합승 택시 요금 - JAVA (0) | 2022.08.01 |
소수 만들기 - JAVA (0) | 2022.07.23 |
댓글