[Programmers / Level2] 131704. 택배 상자(Java)

이하얀·2024년 10월 1일
1

🕊️ 프로그래머스

목록 보기
53/82

💡 Info




입출력 조건




입출력 예시




문제 이해


  • 스택을 사용해 주어진 오더 배열에 따라 택배 상자를 컨베이어 벨트에서 꺼내는 문제


알고리즘


풀이 시간 : 1시간 8분

  • i = 1부터 n까지의 상자를 스택에 넣기
    • 스택 최상단 값이 order[index]와 같으면 pop + 처리된 상자 수를 증가
    • 같지 않으면 더 이상 스택에서 꺼내지 않고 다음 상자를 스택에 넣기
import java.util.*;

class Solution {
    public int solution(int[] order) {
        int answer = 0;
        int index = 0;
        
        Stack<Integer> belt = new Stack<>();
        
        for(int i=1;i<=order.length;i++){
            belt.push(i);
            
            while(!belt.isEmpty()){
                if(belt.peek()==order[index]){
                    belt.pop();
                    index++;
                    answer++;
                }
                else {
                    break;
                }
            }
        }
        return answer;
    }
}


결과

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글