Language/JAVA

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

paran21 2022. 1. 20. 15:23

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

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        //add 사용, 답안 배열의 길이를 모르기 때문에 ArrayList사용
        List<Integer> num = new ArrayList<>();
        num.add(arr[0]);
        //num 배열의 index 선언
        int k = 0;
        for (int x : arr) {
            if(!num.get(k).equals(x)) {
                num.add(x);
                k++;
            }
        }
//        for (int i = 0; i < arr.length; i++) {
//            if(!num.get(k).equals(arr[i])) {
//                num.add(arr[i]);
//                k++;
//            }
//        }
        //List배열을 int[]로 변환
        //int[] answer = num.stream().mapToInt(Integer::intValue).toArray();
        int[] answer = new int[num.size()];
        for (int i = 0; i < answer.length; i++) {
            answer[i] = num.get(i);
        }
        
        return answer;
    }
}

for each와 for문 모두 작성해보았다.

 

마지막에 ArrayList를 다시 int[]로 변환할 때 Stream과 for문을 모두 사용해보았는데,

for문이 훨씬 빨랐다.