알고리즘

20230823 [Java] 문제풀이

JayAlex07 2023. 8. 23. 20:10

20230823 [Java] 문제풀이

 

[프로그래머스] 택배상자

 

스택에 상자를 넣으면서 order에 있는 숫자와 비교했다

 

스택에 있는 숫자의 제일 위에 있는 숫자가 현재 order와 같으면, while문을 통해서 하나씩 꺼내면서, 다음 순서로 넘어가고, answer에다 1을 누적시켰다

 

import java.util.*;

class Solution {
    public int solution(int[] order) {
        int answer = 0;

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

        int box = 1;
        int idx = 0;

        while (box <= order.length) {
            reserve.add(box);

            while (!reserve.isEmpty() && reserve.peek() == order[idx]) {
                reserve.pop();
                answer ++;
                idx ++;
            }

            box ++;
        }

        return answer;
    }
}