Mô tả
Tại bến cảng Cái Mép, mỗi ngày có hàng chục container cập bến với khối lượng khác nhau. Anh Tú — nhân viên điều phối bãi — cần nhanh chóng chia lô trước khi cẩu xếp lên tàu. Quy định của cảng rất rành mạch: mọi container nặng từ 5 tấn trở lên sẽ được xếp vào lô nặng, còn nhẹ hơn 5 tấn thì vào lô nhẹ.
Để tiết kiệm thời gian, anh Tú muốn một danh sách xếp dỡ theo nguyên tắc: tất cả container nhẹ xếp trước, sau đó đến tất cả container nặng, nhưng giữa các container trong cùng một lô vẫn giữ nguyên thứ tự cập bến ban đầu. Nhiệm vụ của bạn là giúp anh Tú tạo ra danh sách đó.
Đầu vào
- Một mảng số nguyên
weightsgồm phần tử, mỗi phần tử là khối lượng của một container tính bằng tấn.
Đầu ra
- Trả về một mảng số nguyên thể hiện thứ tự xếp dỡ: các container nhẹ (nhỏ hơn 5) đứng trước, các container nặng (lớn hơn hoặc bằng 5) đứng sau, giữ nguyên thứ tự ban đầu trong từng nhóm.
Ràng buộc
Ví dụ
Ví dụ 1:
- Đầu vào:
weights = [3, 8, 2, 7, 6] - Đầu ra:
[3, 2, 8, 7, 6]
Giải thích: Ta duyệt qua mảng ban đầu. Container nhẹ có khối lượng nhỏ hơn 5 là 3 và 2, lấy theo đúng thứ tự: 3 rồi 2. Tiếp theo, container nặng từ 5 tấn trở lên là 8, 7, 6. Ghép hai nhóm lại ta được kết quả [3, 2, 8, 7, 6].
Ví dụ 2:
- Đầu vào:
weights = [9, 7, 10] - Đầu ra:
[9, 7, 10]
Giải thích: Cả ba container đều từ 5 tấn trở lên nên toàn bộ thuộc nhóm nặng, không có nhóm nhẹ. Thứ tự giữ nguyên, kết quả không thay đổi.