풀이 : 중복만 제거하면 쉽겟다 생각하여 TreeSet / HashSet 을 사용해볼까 했는데 원소들의 순서를 유지해야해서
포기하고 단순하게 풀이 진행
import java.util.ArrayList;
import java.util.List;
public class program {
/* 같은 숫자는 싫어
* 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다
* */
private static int[] intArr = {1, 1, 3, 3, 0, 1, 1};
private static class Solution {
public int[] solution(int[] arr) {
int[] answer = {};
List<Integer> list = new ArrayList();
int keyNum = arr[0];
list.add(keyNum);
for(int i : arr)
{
if(keyNum == i)
continue;
else
{
keyNum = i;
list.add(i);
}
}
answer = list.stream().mapToInt(x -> x).toArray();
return answer;
}
}
public static void main(String[] args) {
Solution sol = new Solution();
sol.solution(intArr);
}
}
'알고리즘 > JAVA' 카테고리의 다른 글
[JAVA] 음양 더하기 - 프로그래머스 (0) | 2021.06.14 |
---|---|
[JAVA] 크레인 인형뽑기 게임 - 프로그래머스 (0) | 2021.02.28 |
[JAVA] 두 정수 사이의 합 - 프로그래머스 (0) | 2021.02.25 |
[JAVA] 위장 - 프로그래머스 (0) | 2020.11.17 |
[JAVA] 전화번호 목록 - 프로그래머스 (0) | 2020.11.16 |