Trung bình 0 đã giải Tỷ lệ chấp nhận 0%

Weekly Payroll

Total a week's pay for salaried, hourly and commission employees, each paid by its own rule.

Bạn sẽ học được gì

  • Compute pay with a rule per employee type
  • Pay overtime above 40 hours
  • Sum decimal amounts accurately

Đề bài

Xem bản dịch

A payroll system treats every employee as an Employee with a WeeklyPay() method, and each kind of employee overrides it.

Each employee is written as:

  • salaried <annual>: earns annual / 52.
  • hourly <rate> <hours>: earns rate × hours for the first 40 hours and 1.5 × rate for every hour beyond 40.
  • commission <base> <rate> <sales>: earns base + rate × sales.

Implement weekly_payroll(employees).

Input

employees: The employees. Numbers may have decimals.

Output

Return the total weekly pay. Answers within 1e-6 are accepted.

Ràng buộc

0 ≤ number of employees ≤ 10,000

All numbers are between 0 and 10^7; hours ≤ 100

Ví dụ

Ví dụ 1
Đầu vào:
employees = ["salaried 52000", "hourly 20 45"]

Kết quả mong đợi:
expected = 1950.0
Đầu vào:
std::vector<std::string> employees = {"salaried 52000", "hourly 20 45"};

Kết quả mong đợi:
double expected = 1950.0;
Đầu vào:
string[] employees = new string[] {"salaried 52000", "hourly 20 45"};

Kết quả mong đợi:
double expected = 1950.0;

Giải thích

The salaried employee earns 52000 / 52 = 1000. The hourly one earns 20 × 40 + 30 × 5 = 950. Total 1950.

Ví dụ 2
Đầu vào:
employees = ["commission 300 0.1 2500"]

Kết quả mong đợi:
expected = 550.0
Đầu vào:
std::vector<std::string> employees = {"commission 300 0.1 2500"};

Kết quả mong đợi:
double expected = 550.0;
Đầu vào:
string[] employees = new string[] {"commission 300 0.1 2500"};

Kết quả mong đợi:
double expected = 550.0;

Giải thích

300 + 0.1 × 2500 = 550.

Hướng tiếp cận

Hãy tự thử trước, sau đó mở từng gợi ý một.

Gợi ý 1

Handle each employee type with its own formula.

Gợi ý 2

Hourly pay is normal for the first 40 hours and 1.5 times the rate after that.

Gợi ý 3

Keep decimals: salaries divided by 52 rarely give whole numbers.

Độ phức tạp mong đợi

O(number of employees) time, O(1) extra space

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.