Vu Minh Tien
Technical / Language / Lifestyle

Technical / Language / Lifestyle

#3 Codesignal: alternatingSums

Photo by Susan Q Yin on Unsplash

#3 Codesignal: alternatingSums

Vu Minh Tien's photo
Vu Minh Tien
·Apr 8, 2022·

3 min read

Subscribe to my newsletter and never miss my upcoming articles

Play this article

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

Đề 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]:
    1. Mảng index chẵn sẽ là 1, 3, 5 tương tự index 0, 2, 4 => Tổng sẽ là 1 + 3 + 5 = 9.
    2. Mảng index lẻ sẽ là 2, 4 tương tự index 1, 3 => Tổng sẽ là 2 + 4 = 6
    3. Format tương ứng trả về sẽ là: [9, 4]

Phân tích yêu cầu

  1. 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)
  2. Loop mảng
  3. 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

Did you find this article valuable?

Support Vu Minh Tien by becoming a sponsor. Any amount is appreciated!

Learn more about Hashnode Sponsors
 
Share this