CÔNG NGHỆ THÔNG TIN >> SINH VIÊN BKAP

Đề 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 - 981

Nhữ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à word1word2. 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!

QUẢNG CÁO - TIẾP THỊ