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

Pixel Dophin·2023년 9월 4일
0

프로그래머스

목록 보기
49/55

택배상자

문제링크

풀이

stack
1. 보조 컨테이너 벨트는 앞 뒤로 이동이 가능하지만 입구 외에 다른 면이 막혀 있어서 맨 앞의 상자만 뺄 수 있습니다(즉, 가장 마지막에 보조 컨테이너 벨트에 보관한 상자부터 꺼내게 됩니다).라는 조건을 통해 보조 컨테이너 벨트를 stack으로 구현한다.
2. 보조 컨테이너에 상자를 하나씩 옮겨 담는다.
3. 만약 보조 컨테이너에 마지막으로 담은 상자가 택배 기사님이 원하는 상자 순서와 일치할 때 하나씩 보조 컨테이너에서 트럭에 싣는다. (answer++)
+) 일치하지 않을 때 까지 계속 트럭에 옮긴다.
4. answer(트럭에 담긴 상자 수)를 리턴한다.

코드

import java.util.*;
class Solution {
    public int solution(int[] order) {
        int answer = 0;
        Stack<Integer> stack = new Stack<>();
        
        for (int i = 1; i <= order.length; i++) {
            stack.push(i);
            
            while (stack.size() > 0 && stack.peek() == order[answer]) {
              stack.pop();
              answer++;
            }
        }
        return answer;
    }
}
profile
안녕 👋 성장하고픈 개발자 💻 입니다

0개의 댓글

관련 채용 정보