본문 바로가기
Algorithm/Programmers

[Programmers] Lv.0 / 배열 만들기 4 / Java

by unknownomad 2023. 10. 19.

문제

 

풀이

import java.util.*;

class Solution {
    public int[] solution(int[] arr) {
        
        List<Integer> temp = new ArrayList<>();
        int i = 0;
        
        while(i < arr.length) {
            if(temp.isEmpty()) {
                temp.add(arr[i]);
                i++;
            } else {
                int last = temp.get(temp.size() - 1);
                if(!temp.isEmpty()) {
                    if(last < arr[i]) {
                        temp.add(arr[i]);
                        i++;
                    } else if(last >= arr[i]) {
                        temp.remove(temp.size() - 1);
                    }
                }
            }
        }
        int[] stk = new int[temp.size()];
        
        for(int k = 0; k < temp.size(); k++) {
            stk[k] = temp.get(k).intValue();
        }
        return stk;
    }
}
import java.util.*;

class Solution {
    public Stack<Integer> solution(int[] arr) {
        Stack<Integer> stack = new Stack<>();
        int i = 0;

        while (i < arr.length) {
            if (stack.empty() || stack.peek() < arr[i]) {
                stack.push(arr[i]);
                i++;
            } else if (stack.peek() >= arr[i]) {
                stack.pop();
            }
        }
        return stack;
    }
}

 

출처

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

댓글