Algorithm/programmers
programmers 같은 숫자는 싫어
wow
2022. 2. 16. 19:56
https://programmers.co.kr/learn/courses/30/lessons/12906?language=java
코딩테스트 연습 - 같은 숫자는 싫어
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은
programmers.co.kr
문제 분석
- 배열(arr)에 연속적으로 나타나는 숫자를 하나만 남기고 전부 제거한다.
- list를 사용하여 중복되지 않는 수를 add하고 정답 배열(answer)에 list의 값들을 추가한다.
문제 풀이
1. idx 변수를 통해 반복되어 나오는 숫자 중 첫 번째 인덱스를 나타낸다.
2. idx2 변수를 통해 반복되어 나오는 첫 숫자를 제외한 나머지 인덱스를 나타낸다.
3. while문을 통해 전체 배열의 길이만큼 탐색 후 중복되지 않는 숫자들만 list에 넣어준다.
4. list의 숫자들을 정답 배열(answer)에 넣고 출력한다.
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
ArrayList<Integer> list = new ArrayList<>();
int idx = 0;
int idx2 = 1;
while(true){
if(idx>=arr.length || idx2>=arr.length){
list.add(arr[arr.length-1]);
break;
}
if(arr[idx]==arr[idx2]){
idx2++;
continue;
}
list.add(arr[idx]);
idx = idx2;
idx2 = idx+1;
}
int[] answer = new int[list.size()];
for(int i=0;i<list.size();i++){
answer[i] = list.get(i);
}
return answer;
}
}