[JAVA/프로그래머스] 연습문제: 같은 숫자는 싫어

👀 문제

https://programmers.co.kr/learn/courses/30/lessons/12906

👊 도전

1. 설계

  1. 이전의 값을 따로 저장해두고 연속적인 값이 나오는지 체크한다.
  2. 연속적인 값이 나오지 않는다면 ArrayList에 저장한다.
  3. ArrayList의 값을 배열 answer에 옮겨 저장한다.

2. 구현 (성공 코드)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.*;
/**
 *
 * @author HEESOO
 *
 */
public class Solution {
	public int[] solution(int []arr) {
        int[] answer = {};
        ArrayList<Integer> list=new ArrayList<>();
        int num=arr[0];
        for(int i=1;i<arr.length;i++){
            if(num!=arr[i]){//이전 숫자와 다르다면
                list.add(num);//이전 숫자를 저장
                num=arr[i];//현재 숫자가 반복되는지 체크하기 위함
            }
            if(i==arr.length-1) list.add(arr[i]);//마지막 숫자 저장
        }
        answer=new int[list.size()];
        for(int i=0;i<answer.length;i++){
            answer[i]=list.get(i);
        }
        return answer;
	}
}
 

3. 결과

실행결과 🤟 성공 🤟

4. 설명

  1. 이전 숫자를 num에 저장하여 연속되는지 체크한다.
    • 더이상 연속되지 않는다면 이전 숫자를 list에 저장한다.
    • 현재 숫자가 연속되는지 확인하기 위해 num에 저장한다.
  2. 마지막 숫자를 list에 저장한다.
    • list에 넣는 것은 이전 숫자인 num이므로 마지막 숫자는 따로 list에 저장해줘야 한다.

👏 해결 완료!

쉽다222!