코딩테스트 연습/알고리즘

[프로그래머스 / 알고리즘 고득점 Kit] 같은 숫자는 싫어

oahee 2024. 2. 21. 16:32

📄 문제

 

💡 풀이

import java.util.*;

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

 


🔍 다른 사람 풀이보고 다시 풀기

- preNum 변수 사용으로 list.size()를 매번 호출 안해도 됨

import java.util.*;

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

 

- 속도 차이 확인

    preNum 변수를 사용한 코드가 속도와 효율성이 조금씩 좋은 것 같다.

왼쪽(내 풀이), 오른쪽(수정한 풀이)