반응형
SMALL
https://programmers.co.kr/learn/courses/30/lessons/12906
// 1. 임의의 숫자와 비교하여 없으면 넣고 있으면 패스하는 방식의 코드
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
int[] answer = {};
ArrayList<Integer> arrayList = new ArrayList<>();
int temp = -1; // 배열의 숫자는 0~9라고 했으므로 -1이 나올 일은 절대 없으니까
for(int i : arr) {
if(temp == i) { // 임의의 temp 값과 배열의 값이 같다면 패스
continue;
} else { // 다르다면 arrayList에 넣어주기
arrayList.add(i);
temp = i; // 그리고 넣었다는 표시로 i 값을 temp에 갱신
}
}
answer = new int[arrayList.size()];
for(int i = 0; i < arrayList.size(); i++) {
answer[i] = arrayList.get(i);
}
return answer;
}
}
// 2. 같지않으면 배열에 추가추가 쉽게하려고 String 배열 썼다가 Integer 배열로 변경하는 코드
// 이 방법은 효율성 탈락
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
StringBuilder sb = new StringBuilder();
int size = arr.length;
sb.append(arr[0]);
for(int i = 1; i < size; i++) {
if(arr[i-1] != arr[i]) {
sb.append(arr[i]);
}
}
String[] str_array = sb.toString().split("");
size = str_array.length;
int[] answer = new int[size];
for(int i = 0; i < size; i++) {
answer[i] = Integer.parseInt(str_array[i]);
}
return answer;
}
}
// HashSet을 안하는 이유?
// HashSet은 아예 중복값을 없애버리고 정렬까지 해버리니까!
// 이 문제는 중복 제거만이 아니라 연속된 부분의 중복 부분을 제거하는거고 정렬도 안하는 문제!
반응형
LIST
'JAVA > Algorithm' 카테고리의 다른 글
[프로그래머스/java] 두 정수 사이의 합 (0) | 2020.10.24 |
---|---|
[프로그래머스/java] 나누어 떨어지는 숫자 배열 (0) | 2020.10.24 |
[프로그래머스/java] 가운데 글자 가져오기 (0) | 2020.10.23 |
[프로그래머스/java] 2016년 (0) | 2020.10.23 |
[프로그래머스/java] K번째수 (0) | 2020.10.21 |