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

hsnam·2022년 1월 9일
0

프로그래머스

목록 보기
2/20
post-thumbnail

같은 숫자는 싫어

배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다.
이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다.
단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다.
예를 들면,
arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.
arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.
배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.

제한사항
배열 arr의 크기 : 1,000,000 이하의 자연수
배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수
입출력 예

arranswer
[1,1,3,3,0,1,1][1,3,0,1]
[4,4,4,3,3][4,3]

JAVA

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        ArrayList<Integer> answerList = new ArrayList<Integer>();
        //
        int value = -1;
        for(int i=0; i<arr.length; i++) {
            if(arr[i] != value) {
                answerList.add(arr[i]);
                value = arr[i];
            }
        }
        return answerList.stream().mapToInt(i->i).toArray();
    }
}
  • 문제풀이
    - response해야할 배열의 크기를 알 수 없기 때문에 ArrayList 형태의 인스턴스를 생성한다.
    - int value값을 생성하여 이전값에 대해서 초기화 한다.
    - 이전값과 비교하여 중복되지 않으면 값을 배열에 저장하고 값지 않으면 배열에 저장하지 않는다.
    - response 데이터가 int[] arr이므로 형태에 맞게 stream을이용하여 변환
  • 결과
정확성  테스트
테스트 1 〉	통과 (1.80ms, 75.9MB)
테스트 2 〉	통과 (1.93ms, 76.9MB)
테스트 3 〉	통과 (1.97ms, 70.5MB)
테스트 4 〉	통과 (1.79ms, 76.8MB)
테스트 5 〉	통과 (2.62ms, 83.2MB)
테스트 6 〉	통과 (2.68ms, 78.2MB)
테스트 7 〉	통과 (1.76ms, 76.4MB)
테스트 8 〉	통과 (1.90ms, 77.4MB)
테스트 9 〉	통과 (2.12ms, 73.9MB)
테스트 10 〉	통과 (1.83ms, 70.4MB)
테스트 11 〉	통과 (2.27ms, 75.4MB)
테스트 12 〉	통과 (2.80ms, 74.6MB)
테스트 13 〉	통과 (2.58ms, 79.4MB)
테스트 14 〉	통과 (2.92ms, 82.3MB)
테스트 15 〉	통과 (1.88ms, 84.8MB)
테스트 16 〉	통과 (2.23ms, 78.3MB)
테스트 17 〉	통과 (2.23ms, 74.6MB)
효율성  테스트
테스트 1 〉	통과 (35.43ms, 125MB)
테스트 2 〉	통과 (39.64ms, 125MB)
테스트 3 〉	통과 (30.69ms, 139MB)
테스트 4 〉	통과 (37.03ms, 127MB)
채점 결과
정확성: 71.9
효율성: 28.1
합계: 100.0 / 100.0

0개의 댓글