[lv.1] 같은 숫자는 싫어

RTUnu12·2024년 2월 19일
0

Programmers

목록 보기
6/41

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

  • 문제
    배열 arr가 주어질 때, 연속된 수를 제거한 배열을 리턴해라.
    [1, 1, 1, 2, 3]일 경우 [1, 2, 3]으로 리턴.

  • 풀이
    큐에 값을 모두 집어넣은 뒤 하나씩 빼온다. 이때 이전의 값을 저장하는 memory랑 같이 다를 경우에만 값을 배열에 넣는다.

  • 코드

import java.util.*;

public class Solution {
    public int[] solution(int []arr) {
        StringBuilder sb = new StringBuilder();
        int memory = -1;
        Queue<Integer> queue = new LinkedList<>();
        for(int i=0; i<arr.length; i++){
            queue.add(arr[i]);
        }
        while(!queue.isEmpty()){
            int now = queue.poll();
            if(memory != now){
                sb.append(now);
                memory = now;
            }
        }
        String str = sb.toString();
        int[] answer = new int[str.length()];
        for(int i=0; i<str.length(); i++){
            answer[i] = str.charAt(i) - '0';
        }
        return answer;
    }
}
profile
이제 나도 현실에 부딪힐 것이다.

0개의 댓글