Hè lố, xin chào các bạn, mình là Tiến, hôm nay mình sẽ cùng các bạn tiếp túc chủ đề Problem Solving
nha..
Đây là thử thách của mình I will write a post every day
Link bài gốc: https://app.codesignal.com/arcade/intro/level-4/cC5QuL9fqvZjXJsW9
Đề bài: Several people are standing in a row and need to be divided into two teams. The first person goes into team 1, the second goes into team 2, the third goes into team 1 again, the fourth into team 2, and so on. You are given an array of positive integers - the weights of the people. Return an array of two integers, where the first element is the total weight of team 1, and the second element is the total weight of team 2 after the division is complete.
Vì đề khá dài, mình cũng không muốn dịch word-by-word, bạn có thể tự dịch, mình sẽ tóm lại lại ý tưởng một cách ngắn gọn cho bạn heng....
Dịch: Hiểu đơn giản là cho 1 array, bạn cần trả về 1 mảng tính tổng của của các số ở vị trí index chẵn, và tổng của các số ở vị trí index lẻ. Mảng trả về sẽ là theo format
[tổng các số index chẵn, tổng các số index lẻ]
- Ví dụ để bạn dễ hiểu hơn nha, có mảng [1, 2, 3, 4, 5]:
- Mảng index chẵn sẽ là
1, 3, 5
tương tự index0, 2, 4
=> Tổng sẽ là 1 + 3 + 5 = 9. - Mảng index lẻ sẽ là
2, 4
tương tự index1, 3
=> Tổng sẽ là 2 + 4 = 6 - Format tương ứng trả về sẽ là:
[9, 4]
- Mảng index chẵn sẽ là
Phân tích yêu cầu
- Tạo mảng tổng(Có thể 2 mảng khác nhau hoặc 1 mảng đa chiều -> Cách nào cũng được)
- Loop mảng
- Kiểm tra index đang là chẵn hay lẻ, push vào mảng lưu giá trị tổng
Coding cách đơn giản nhất, clear nhất cho cả những bạn newbie hiểu
Thực ra bài này cũng dễ so với các bạn mà, các bạn giờ suy nghĩ logic cũng tốt lắm. Mình nhảy số hơi chậm nên cứ cách đơn giản nhất mà làm trước -> Rồi muốn refactor cách cao siêu thì áp dụng sau.
def solution(a) line1 = [] line2 = [] a.each_with_index do |value, index| if index.even? line1 << value else line2 << value end end [line1.sum, line2.sum] end
Cảm ơn mọi người đã dành thời gian đọc bài viết của mình. Đừng ngại để lại comment để chúng ta có thể tương tác và học tập lẫn nhau nhé!!!
Bạn có thể donate/mời mình 1 cốc cafe để mình có thêm động lực viết thêm các bài chất lượng nha...hí hí
Link donate: tienvm.com/donate
❤️ Cảm ơn bạn đã đọc bài viết, hẹn các bạn ở những bài viết tiếp theo ❤️
Photo by Susan Q Yin on Unsplash