
-Code
import java.util.*;
class Solution {
public int solution(int[] order) {
Deque<Integer> deq = new ArrayDeque<>();
int answer = 0, idx = 0;;
for (int num = 1; num <= order.length; num++) {
// 현재 택배 넣기
deq.addLast(num);
// 현재 order와 같으면 빼기
// 컨테이너가 비어있지 않고 order가 범위안이고
// 마지막 박스와 오더가 같은 경우 값 증가 및 꺼내기
while (!deq.isEmpty() && idx <= order.length &&
deq.peekLast() == order[idx]) {
deq.pollLast();
idx++;
answer++;
}
}
return answer;
}
}
한 박스가 컨테이너에 들어오고 order에 따라 가능하면 계속 빼줘야 하는데 로직을 이상하게 설계해 무한 루프 거나 하나씩 검사하고 끝내서 빼고 난 뒤 박스 검사를 못 해서 틀렸습니다.
그래서 한번 상자를 넣을때 while문으로 최대한 확인해 봐라 라는 힌트를 보고 해결했습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 9727번 Mini Sudoku X (0) | 2026.04.03 |
|---|---|
| [프로그래머스/Java] 주차 요금 계산 (0) | 2026.04.02 |
| [백준/Java] 15182번 Byte Me! (0) | 2026.04.02 |
| [프로그래머스/Java] 스킬트리 (0) | 2026.04.01 |
| [백준/Java] 32437번 Fractions are better when continued (0) | 2026.04.01 |