Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

csct3434

[level 2] 택배상자 - 131704 본문

프로그래머스

[level 2] 택배상자 - 131704

csct3434 2024. 2. 29. 21:15

문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

class Solution {

    public int solution(int[] orders) {
        int answer = 0;

        Queue<Integer> mainContainer = IntStream.rangeClosed(1, orders.length).boxed()
            .collect(Collectors.toCollection(LinkedList::new));

        Stack<Integer> subContainer = new Stack<>();

        for (int order : orders) {
            while (!mainContainer.isEmpty() && order > mainContainer.peek()) {
                subContainer.push(mainContainer.poll());
            }

            if (!mainContainer.isEmpty() && order == mainContainer.peek()) {
                mainContainer.poll();
                answer++;
                continue;
            }

            if (!subContainer.isEmpty() && order == subContainer.peek()) {
                subContainer.pop();
                answer++;
                continue;
            }

            break;
        }

        return answer;
    }
}