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

김준영·2023년 3월 19일
1

코딩테스트

목록 보기
11/22

풀이

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        List<Integer> list = new ArrayList<>();
        list.add(arr[0]);

        for(int i = 1; i < arr.length; i++){
            if(arr[i] != list.get(list.size()-1))list.add(arr[i]);
        }

        return list.stream().mapToInt(i -> i).toArray();
    }
}
  1. 정답을 저장할 리스트 생성.
  2. 인덱스 0값을 바로 리스트에 저장 후, 배열 복사.
  3. 반복문을 통해 배열에서 값 하나씩 꺼내고, 리스트에 가장 끝에 있는 값과 비교하여 마지막 값과 같은 면 패스, 다르면 리스트에 저장한다.
  4. 스트림을 사용하여 배열로 변환 후, 리턴.

테스트 1 〉 통과 (1.82ms, 75.2MB)
테스트 2 〉 통과 (5.91ms, 76.8MB)
테스트 3 〉 통과 (2.04ms, 73.3MB)
테스트 4 〉 통과 (1.72ms, 74.1MB)
테스트 5 〉 통과 (2.25ms, 76.7MB)
테스트 6 〉 통과 (2.01ms, 75.5MB)
테스트 7 〉 통과 (2.12ms, 76.9MB)
테스트 8 〉 통과 (2.01ms, 77.2MB)
테스트 9 〉 통과 (2.75ms, 82.2MB)
테스트 10 〉 통과 (2.82ms, 78.2MB)
테스트 11 〉 통과 (2.89ms, 85.3MB)
테스트 12 〉 통과 (1.75ms, 71.8MB)
테스트 13 〉 통과 (1.88ms, 77.5MB)
테스트 14 〉 통과 (2.11ms, 75.6MB)
테스트 15 〉 통과 (1.81ms, 70.9MB)
테스트 16 〉 통과 (2.08ms, 76.9MB)
테스트 17 〉 통과 (1.76ms, 80MB)

효율성 테스트
테스트 1 〉 통과 (40.39ms, 114MB)
테스트 2 〉 통과 (40.91ms, 117MB)
테스트 3 〉 통과 (40.67ms, 117MB)
테스트 4 〉 통과 (47.64ms, 119MB)

profile
ㅎㅎ

0개의 댓글