728x90
https://school.programmers.co.kr/learn/courses/30/lessons/131704
728x90
메모리: 79.4 MB, 시간: 1.45 ms
사용 알고리즘: 자료구조, 스택
import java.util.*;
class Solution {
public int solution(int[] order) {
int answer = 0;
int pointer = 1; // 컨테이너 벨트의 가장 앞에 있는 택배 번호
Deque<Integer> deq = new ArrayDeque<>(); // 보조 컨테이너 벨트
for(int i = 0; i < order.length; i++) {
// 컨테이너 벨트에 남아있는 택배 중 하나를 실어야 하는 경우
while(order[i] > pointer) {
deq.addFirst(pointer++);
}
// 컨테이너 벨트의 가장 앞에 있는 택배를 실을 차례
if(order[i] == pointer) {
answer++;
pointer++;
}
// 보조 컨테이너 벨트의 가장 앞에 있는 택배를 실을 차례
else if(!deq.isEmpty() && order[i] == deq.peek()) {
deq.poll();
answer++;
}
else break;
}
return answer;
}
}
728x90
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스, 161990] 바탕화면 정리 (java) (2) | 2024.12.23 |
---|---|
[프로그래머스, 172928] 공원 산책 (java) (0) | 2024.12.23 |
[프로그래머스, 49993] 스킬트리 (java) (0) | 2024.12.12 |
[프로그래머스, 42748] K번째수 (java) (0) | 2024.12.12 |
[프로그래머스, 92341] 주차 요금 계산 (java) (0) | 2024.11.17 |