프로그래머스 - 배열 만들기6

JJJ·2023년 5월 29일
0

코딩 기초 트레이닝

목록 보기
28/29


풀이

import java.util.*;

class Solution {
    public int[] solution(int[] arr) {
        int[] answer = array(arr);
        if(answer.length==0) {
            return new int[]{-1};
        }
        return answer;
    }
    private static int[] array(int[] arr){
        Stack<Integer> stk=new Stack<>();
        for(int i=0; i<arr.length; i++){
            if(stk.isEmpty() || stk.peek() != arr[i]) {
                stk.push(arr[i]);
            }else{
                stk.pop();
            }
        }
        int[] tmp=new int[stk.size()];
        int idx=tmp.length-1;
        while(!stk.isEmpty()){
            tmp[idx]=stk.pop();
            idx--;
        }
        return tmp;
    }
}

풀이방법
1) stack사용으로 규칙에 맞게 값 누적하기
2) tmp배열에 임시저장
3) answer에 대입하여 반환

profile
Think Talk Act

0개의 댓글