[프로그래머스, 181918] 배열 만들기 4 (java)
Problem Solving/Programmers

[프로그래머스, 181918] 배열 만들기 4 (java)

728x90

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


메모리: 98.8 MB, 시간: 24.18 ms

사용 알고리즘: 자료구조

import java.util.*;

class Solution {
    public int[] solution(int[] arr) {
        
        // 스택으로 사용할 덱
        Deque<Integer> stack = new ArrayDeque<>();
        
        // 스택 자료구조를 사용해 작업 수행
        int idx = 0;
        while(idx < arr.length) {
            if(stack.isEmpty())
                stack.add(arr[idx++]);
            else if(stack.peekLast() < arr[idx])
                stack.add(arr[idx++]);
            else stack.pollLast();
        }
        
        int[] stk = new int[stack.size()];
        for(int i = 0; i < stk.length; i++)
            stk[i] = stack.poll();
        return stk;
    }
}
728x90