알고리즘/JAVA

[JAVA] 같은 숫자는 싫어 - 프로그래머스

야아옹 2021. 2. 26. 09:38

 

풀이 :  중복만 제거하면 쉽겟다 생각하여 TreeSet / HashSet 을 사용해볼까 했는데 원소들의 순서를 유지해야해서

포기하고 단순하게 풀이 진행 

 

import java.util.ArrayList;
import java.util.List;

public class program {
    /* 같은 숫자는 싫어
     * 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다
     * */
	private static int[] intArr = {1, 1, 3, 3, 0, 1, 1};
	
	private static class Solution {
		public int[] solution(int[] arr) {
			 int[] answer = {};
			 List<Integer> list = new ArrayList();
			 int keyNum = arr[0];
			 list.add(keyNum);
			 for(int i : arr)
			 {
				 if(keyNum == i)
					 continue;
				 else
				 {
					 keyNum = i;
					 list.add(i);
				 }
			 }
		    
			 answer = list.stream().mapToInt(x -> x).toArray();
		     return answer;
	    }
	}
	public static void main(String[] args) {
		Solution sol = new Solution();
		sol.solution(intArr);

	}

}