물류 센터의 적재 레일은 길이가 railLength칸인 일직선 컨베이어입니다.
대기실에 있는 로봇들은 weights 배열 순서대로(0번부터) 레일에 올라가 반대편 창고로 이동합니다.
레일은 매 초마다 다음 순서로 동작합니다.
weightLimit 이하slotLimit 이하
조건을 만족하지 못하면 그 초에는 아무도 올라가지 않고, 대기 순서도 바뀌지 않습니다.시각 0에 레일은 비어 있고, 첫 로봇은 시각 1에 올라갑니다.
레일에 시각 t에 올라간 로봇은 railLength칸을 지나 시각 t + railLength에 내려갑니다.
각 로봇이 레일에서 내려가는 시각 을 입력 순서대로 담은 배열을 반환하는
solution(railLength, weightLimit, slotLimit, weights) 함수를 작성하세요.
railLength=2, weightLimit=10, slotLimit=2, weights=[7,4,5,6] → [3,5,6,8]
시각 1: 0번(7) 진입 → 레일 무게 7
시각 2: 1번(4)을 올리면 11 > 10 이므로 대기
시각 3: 0번 하차(=3) → 1번(4) 진입
시각 4: 2번(5) 진입 (무게 9, 2대)
시각 5: 1번 하차(=5) → 3번(6)은 5+6=11 > 10 이라 대기
시각 6: 2번 하차(=6) → 3번(6) 진입
시각 8: 3번 하차(=8)
railLength=4, weightLimit=100, slotLimit=2, weights=[1,1,1] → [5,6,9]
무게는 넉넉하지만 레일에는 두 대까지만 올라갈 수 있습니다.
시각 1·2에 0번·1번이 올라가고, 3·4초에는 자리가 없어 대기합니다.
시각 5에 0번이 내려가면서 빈 자리에 2번이 올라가 시각 9에 내려갑니다.
railLength=1, weightLimit=5, slotLimit=3, weights=[5,5] → [2,3]
레일이 한 칸이라 올라간 로봇은 다음 초에 바로 내려갑니다.railLength ≤ 10,000slotLimit ≤ 100,000weights.length ≤ 100,000weights[i] ≤ weightLimit ≤ 1,000,000,000 (모든 로봇은 혼자서는 반드시 올라갈 수 있습니다)weights.length와 같고, 원소는 모두 정수입니다.시간 복잡도 목표: O(N) — 1초 단위로 전부 훑으면 총 경과 시간이 커서 제한 시간을 넘길 수 있습니다.
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.