728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12906
연속된 숫자가 중복될 경우 하나만 남기고 지워주면 되는 문제입니다.
처음에는 문제를 잘못 일고 중복된 숫자를 다 지우는 것인 줄 알았는데 아니었습니다.
제 문제 풀이 방식의 기본 개념은 아래와 같습니다.
우선 결과값을 담을 리스트와 비교할 숫자를 담을 변수를 하나 준비합니다.
그리고 배열의 첫 번째 숫자를 배열과 비교할 숫자의 변수에 담고 시작합니다.
그리고 배열을 순차적으로 돌면서 비교할 숫자와 숫자를 비교해 같으면 무시합니다.
다르다면 숫자를 결괏값 리스트에 담고 비교 변수도 같은 값으로 변경해줍니다.
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
List<Integer> l = new ArrayList<Integer>();
int s = -1;
for(int i : arr){
if(s != i){
l.add(i);
s = i;
}
}
int[] answer = new int[l.size()];
for(int k = 0; k < l.size(); k++){
answer[k] = l.get(k);
}
return answer;
}
}
728x90
'Algorithm > Java 풀이' 카테고리의 다른 글
프로그래머스 폰켓몬 java 풀이 (0) | 2022.09.28 |
---|---|
프로그래머스 프린터 자바 풀이 (0) | 2022.09.23 |
프로그래머스 K번째 수 Java풀이 (0) | 2022.09.14 |
백준 1008 자바 (0) | 2022.03.11 |
백준 10998 자바 (0) | 2022.03.11 |