2.2. 이전 숫자가 다음 숫자보다 크면 첫사람에 다음사람을 할당하고 count 1 증가하고 result에 count와 result중 큰 값을 할당
3. 위를 반복해서 가장 큰 result를 리턴
import java.util.*;
public class Solution {
public int paveBox(Integer[] boxes) {
Queue<Integer> queue = new LinkedList<>(Arrays.asList(boxes));
//첫 사람 선언, 할당
Integer first = queue.poll();
// 결과를 담을 변수, 초기값 1
int result = 1;
// 앞으로 비교할 인원수, 초기값 1
int count = 1;
// 큐가 빌 때까지 순회
while(queue.peek() != null) {
// 비교할 짐 할당
Integer compare = queue.poll();
// 비교할 짐이 더 크다면(함께 나갈 수 없는 경우)
if(first < compare) {
// 결과와 현재 나갈 수 있는 수중 큰 수를 할당
result = Math.max(result,count);
// 카운트 초기화
count = 1;
// 이번에 나갈 사람을 first에 할당(나갈 사람은 벌써 compare에 poll()을 사용해 큐에서 비어있는 상황)
first = compare;
} else {
// 비교할 짐이 더 작다면(함께 나갈 수 있는 경우)
count++;
// 마지막까지 다 순회했는데도 더 큰 짐이 없는 경우
if(queue.isEmpty()) {
// 현재까지 나갈 수 있는 짐의 크기와, 앞서서 비교한 값중 큰 값을 할당
result = Math.max(result,count);
}
}
}
//결과 반환
return result;
}
}