반응형
728x90
반응형
문제 12903번
https://programmers.co.kr/learn/courses/30/lessons/12906
풀이
package seohae.algorithm.level1;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Stack;
/**
* 같은 숫자는 싫어
* https://programmers.co.kr/learn/courses/30/lessons/12906
*/
public class Lesson_026_12906 {
public static void main(String[] args) {
Lesson_026_12906 lesson = new Lesson_026_12906();
int[] arr = new int[5];
arr[0] = 4;
arr[1] = 4;
arr[2] = 3;
arr[3] = 3;
arr[4] = 3;
System.out.println(Arrays.toString(lesson.solution(arr)));
}
public int[] solution(int[] arr) {
int[] answer = new int[arr.length];
int size = 0; /* 마지막 결과에 담을 배열 size */
int answerLastVal = 0; /* answer 배열의 마지막 요소 업데이트 */
for (int i = 0; i < arr.length; i++) {
// 처음 시작
if (i == 0) {
answer[i] = arr[i];
answerLastVal = answer[i]; // 마지막 요소 update
size++;
} else {
// 두번째 부터는 이전의 요소와 확인
if (answerLastVal != arr[i]) {
answer[i] = arr[i];
answerLastVal = answer[i]; // 마지막 요소 update
size++;
} else {
/* -1은 배열에 있을 수 없으므로 지우기 위해 -1로 지정 */
answer[i] = -1;
}
}
}
// 요소 -1 제거
int[] result = new int[size];
int index = 0;
for (int j : answer) {
if (j != -1) {
result[index] = j;
index++;
}
}
return result;
}
}
반응형
'Algorithm > Problem Solving' 카테고리의 다른 글
[프로그래머스] Level2 _12951번: JadenCase 문자열 만들기 (JAVA) (0) | 2021.09.03 |
---|---|
[프로그래머스] Level1 _12901번: 2016년 (JAVA) (0) | 2021.08.28 |
[Baekjoon 9012번] 괄호 풀이 (with 스택) (0) | 2021.08.27 |
[Baekjoon] 재귀 문제풀이 (피보나치수열 10870번, 팩토리얼 10872번) (0) | 2021.07.05 |
[Baekjoon 2750번] 선택정렬, 삽입정렬 풀이 (0) | 2021.07.05 |