Đề thi đầu vào Shopify Internship Advanced tại công ty cổ phần BSS Group
Đăng lúc: 03:14 PM - 12/07/2023 bởi Charles Chung - 1626Những bạn chuẩn bị ứng tuyển vào BSS Group có thể tham khảo bài thi sau đây để xem năng lực của mình thế nào nhé.
P1: Algorithrms (7 Point):
C1 (2 point): Bộ phận shopify – blockchains (SBC) có tổng cộng 10 thành viên gồm các thành viên với độ tuổi từ 20 đến 50. Hãy viết code để tạo dữ liệu giả lập cho tuổi của các thành viên với điều kiện:
- Các thành viên không được trùng tuổi với nhau
- Độ tuổi của các thành viên là ngẫu nhiên
- Độ tuổi của các thành viên nằm trong khoảng 20 đến 50
- Cấu trúc đầu ra sẽ là một mảng có dạng [20, 21, 30, 35, …]
Hãy sắp xếp thành viên có độ tuổi lớn nhất ngồi cạnh thành viên có độ tuổi nhỏ nhất, thành viên có độ tuổi lớn thứ hai ngồi cạnh thành viên có độ tuổi nhỏ thứ hai và cứ như vậy, đưa ra kết quả là một mảng chứa tuổi của các thành viên được sắp xếp theo quy tắc trên.
C2 (3 point):
P1: Công ty ngoài bộ phận SBC đang ngồi ở tầng 1 còn có bộ phận BS ngồi ở tầng 2, BP ngồi ở tầng 3. Hãy viết code để tạo dữ liệu giả lập cho tuổi của các thành viên với điều kiện:
- Các thành viên không được trùng tuổi với nhau
- Độ tuổi của các thành viên là ngẫu nhiên
- Độ tuổi của các thành viên nằm trong khoảng 20 đến 50
- 2 bộ phận mới mỗi bộ phận đều có 10 thành viên
- Cấu trúc đầu ra sẽ là một mảng có dạng [20, 21, 30, 35, …]
*Ví dụ:
BS: [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40];
BP: [40, 41, 37, 43, 44, 45, 46, 33, 48, 49, 50];
Kiểm tra xem giữa các bộ phận có bao nhiêu thành viên trùng tuổi với nhau.
*ví dụ: BS với BP có 4 thành viên trùng tuổi với nhau là 33 và 37;
Tương tự với BS và SBC, BP và SBC
Lưu ý: tuổi của các thành viên trong SBC sẽ theo kết quả của C1, còn tuổi 2 team còn lại sẽ theo kết quả ở câu C2.P1
P2: Hàng tháng công ty tổ chức đổi chỗ các bộ phận với nhau. Hãy viết code để đổi chỗ 3 bộ phận cho nhau theo ví dụ bên dưới:
SBC: [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
BS: [30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40];
BP: [40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50];
Chuyển thành:
[40, 30, 20];
[41, 31, 21];
[42, 32, 22];
…..
[49, 39, 29];
[50, 40, 30];
Lưu ý: vị trí chỗ ngồi của các thành viên trước khi đổi chỗ trong SBC sẽ theo kết quả sắp xếp ở C1, còn vị trí chỗ ngồi 2 team còn lại sẽ theo kết quả ở câu C2.P1
C3 (2 point): Tạo một phần mềm để quản lý có thể sửa tên các thành viên trong bộ phận của mình. Phần mềm sẽ có 2 đầu vào là word1 và word2. Phần mềm này chỉ có thể: thêm, thay đổi, hoặc xóa 1 chữ cái trong từ trong 1 lần thay đổi. Chuyển “Pham Van Quyen” sang “Tran Duc Nam” dựa vào phần mềm trên. Đếm xem để đổi 2 từ trên tốn bao nhiêu bước.
Ví dụ:
Input: word1: “sun”, word2: “sing”
Step:
Sun -> sn (xóa u)
Sn -> sin (thêm i)
Sin -> sing (thêm g)
Total: 3 Steps
Hoặc
Step:
Sun -> sin (đổi u thành i)
Sin -> sing (thêm g)
Total: 2 Steps
*Cần trả về kết quả tốn ít bước hơn
P2: Database (3 point):
C4 (1.5 point): Thiết kế cơ sở dữ liệu cho các thành viên trong công ty để có thể theo dõi và thống kê được mức lương của các thành viên. Cơ sở dữ liệu cần cung cấp được thông tin cơ bản như mã nhân viên, tên nhân viên, tuổi, mức lương cũng như bộ phận làm việc. 1 nhân viên có thể làm ở nhiều bộ phận, và tên các bộ phận không được trùng nhau.
C5 (1.5 point): Viết câu lệnh SQL để tìm ra các thành viên có mức lương cao nhất theo từng bộ phận. Kết quả trả về là một danh sách theo bất cứ thứ tự nào. Nếu có nhiều nhân viên bằng lương nhau nhưng cũng là mức lương cao nhất thì hiển thị tất cả những nhân viên đó ra.
Chúc các bạn thành công!
thay lời cảm ơn!
Các bài cũ hơn
- Tìm hiểu danh sách liên kết kép-Double Linked List [Cấu trúc dữ liệu và giải thuật] (07:07 PM - 10/07/2023)
- Cổng tra cứu điểm thi Bách Khoa Aptech-BKAP (03:25 PM - 07/07/2023)
- Tìm hiểu danh sách liên kết đơn-Single Linked List [Cấu trúc dữ liệu và giải thuật] (11:39 AM - 24/06/2023)
- HANAM88 Document API dành cho sinh viên Bách Khoa Aptech thực hành lập trình FrontEnd (02:32 PM - 22/06/2023)
- Bài thi Test Logic và FrontEnd của công ty Sotatek (11:24 AM - 22/06/2023)