[ Programmers ] 같은 숫자는 싫어 (Java)

ma.caron_g·2021년 5월 5일
0

Lv.1 - Programmers (완성)

목록 보기
14/74
post-thumbnail

1. Problem 📃

[ 같은 숫자는 싫어 ]
https://programmers.co.kr/learn/courses/30/lessons/12906


2. Constraint 🔗


3. Solution 🔑

  1. 입력 받은 배열 arr는 한 수에 대해서 연속적으로 나타나다가 다른 수를 입력 받는다
    따라서, 전 요소와 다른 요소가 나타나면 배열에 추가해주면 된다.
  2. list를 만들고, 첫 리스트를 추가한 후 다음 요소와 비교해주면서 포함하고 있지 않는 요소는 list에 추가해준다.
  3. list에 있는 요소들을 answer에 모두 .get() 메서드로 추가해주고 answer을 리턴해준다.

4. Code 💻

import java.util.*;

class Solution {
    
	public int[] solution(int []arr) {
        
        ArrayList<Integer> list = new ArrayList<>();
        for(int i=0; i<arr.length; i++) {
        	if(i==0) {
        		list.add(arr[i]);
        	}
        	else if(arr[i-1]!=arr[i]) {
        		list.add(arr[i]);
        	}
        }
        int[] answer = new int[list.size()];
        for(int i=0; i<answer.length; i++) {
        	answer[i] = list.get(i);
        }
        

        return answer;
    }
}

5. Growth 🍄

[ 배열 VS 리스트 ]

배열이란? 데이터의 크기가 정해져 있고, 요소의 추가적인 삽입 삭제가 일어나지 않으며, 검색을 필요로 할 때 유리

리스트란? 데이터의 크기가 정해져 있지 않으며, 삽입 삭제가 많이 일어나며, 검색이 적은 경우 유리.

[ ArrayList ]

이번 문제에서 ArrayList라는 개념을 처음 사용해 보았는데, 내 마음대로 add하여 요소를 추가하고 remove 하여 제거할 수 있다는 점에서 편했다.

이후 .get() 메서드를 이용해서 list 요소를 answer[] 배열에 넣어주고 리턴하였다.



<번외>
다른 사람 풀이에서 보니
배열에 0~9 숫자만 넣어주니 전에 수를 넣는 임의의 변수(preNum)를 선언 후 10을 저장
if문으로 전에 수를 가르키는 변수(preNum)이 들어가는 숫자와 같지 않으면 삽입, 그리고 preNum을 들어간 수로 바꿔서 좀 더 간단하게도 표현 가능한 것을 확인했다.

profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글