문제 출처 - Programmers
문제는 여기
[풀이]
1. 크기를 모르니 값들을 담아주기 위한 ArrayList를 만들어준다.
2. arr의 첫 값을 체크하기 위한 변수에 담아준다.
3. 배열을 탐색하면서 현재 값과 변수를 비교한다.
3-1. 같으면 넘어간다.
3-2. 다르면 리스트에 변수의 값을 담아주고 변수를 현재 값으로 갱신해준다.
4. 마지막에 남아있는 값을 리스트에 담아준다.
5. 리스트에 있는 값들을 배열에 담아준다.
6. 해당 배열을 출력한다.
[접근]
1. 현재 비교하는 값을 두고 같다면 넘어가고 다른 경우 해당 값을 넣어주는 식으로 처리하면 되겠다고 생각하였다.
[코드]
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
ArrayList<Integer> list = new ArrayList<>();
// 초기화
int n = arr[0];
// 배열 탐색
for (int i = 1; i < arr.length; i++) {
// 현재 값과 체크하는 값이 같으면 넘어가기
if (n == arr[i])
continue;
// 다르면
else {
// 리스트에 추가
list.add(n);
// 체크하는 값을 현재값으로 갱신
n = arr[i];
}
}
// 마지막에 남은거 넣어주기
list.add(n);
int[] answer = new int[list.size()];
// 리스트에 있는 값들을 배열에 담아주기
int index = 0;
for (int k : list) {
answer[index++] = k;
}
return answer;
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 수박수박수박수박수박수? (JAVA) (0) | 2022.04.05 |
---|---|
[프로그래머스] 가운데 글자 가져오기 (JAVA) (0) | 2022.04.04 |
[프로그래머스] H-Index (JAVA) (0) | 2022.04.01 |
[프로그래머스] 주식가격 (JAVA) (0) | 2022.03.31 |
[프로그래머스] N으로 표현 (0) | 2022.03.30 |