Hướng dẫn greed is good codewars python - lòng tham là con trăn mã tốt

CodeWars Python Solutions


Tham lam là tốt

Greed là một trò chơi xúc xắc được chơi với năm con xúc xắc sáu mặt. Nhiệm vụ của bạn, nếu bạn chọn chấp nhận nó, là ghi điểm theo các quy tắc này. Bạn sẽ luôn được cung cấp một mảng với năm giá trị xúc xắc sáu mặt.

Three 1's => 1000 points
Three 6's =>  600 points
Three 5's =>  500 points
Three 4's =>  400 points
Three 3's =>  300 points
Three 2's =>  200 points
One   1   =>  100 points
One   5   =>   50 point

Một chết duy nhất chỉ có thể được tính một lần trong mỗi cuộn. Ví dụ, "5" chỉ có thể được tính là một phần của bộ ba (đóng góp vào 500 điểm) hoặc là 50 điểm duy nhất, nhưng không phải cả hai trong cùng một cuộn.

Ví dụ về điểm

Throw       Score
---------   ------------------
5 1 3 4 1   50 + 2 * 100 = 250
1 1 1 3 1   1000 + 100 = 1100
2 4 4 5 4   400 + 50 = 450

Trong một số ngôn ngữ, có thể biến đổi đầu vào cho hàm. Đây là điều mà bạn không bao giờ nên làm. Nếu bạn đột biến đầu vào, bạn sẽ không thể vượt qua tất cả các bài kiểm tra.


Mã đã cho


Dung dịch

def score(dice):
    from collections import Counter
    points = {1:1000, 6:600, 5:500, 4:400, 3:300, 2:200}
    dices = Counter(dice)

    tot = 0

    for k,v in dices.items():
        if v >= 3:
            tot += points[k] * (v // 3)
        if k == 1:
            tot += 100 * (v % 3)
        elif k == 5:
            tot += 50 * (v % 3)

    return tot


Xem trên CodeWars.com

Tổng số phiếu bầu "không hài lòng"

Permalink

Không thể lấy lại những người đóng góp tại thời điểm này

defscore (xúc xắc): score(dice):
result=0 = 0
Fordieinrange (1, 7): die in range(1, 7):
Ifdice.Count (Die)> 2: dice.count(die) > 2:
ifdie == 1: die == 1:
result=1000 = 1000
khác::
result=die*100 = die * 100
foriinrange (3): i in range(3):
Deldice [Dice.index (Die)] dice[dice.index(die)]
in (xúc xắc)(dice)
break
if1indice: 1 in dice:
result+=100 += 100
if5indice: 5 in dice:
result+=50 += 50
Trả lại result
in (điểm ([2, 3, 2, 2, 5])))(score([2, 3, 2, 2, 5]))

  • Đăng ký

    Thời gian để nhận được danh dự của bạn

  • Tập huấn
  • Thực tiễn

    Hoàn thành thách thức Kata để kiếm được danh dự và cấp bậc. Hãy đào tạo lại để trau dồi kỹ thuậtKata to earn honor and ranks. Re-train to hone technique

  • Freestyle sparring

    Thay phiên nhau phối lại và tái cấu trúc mã người khác thông qua KumiteKumite

  • Sự nghiệp
  • Những cơ hội

    Tìm thử thách nghề nghiệp tiếp theo của bạn - được cung cấp bởi các công việc đủ điều kiệnQualified Jobs

  • Cộng đồng
  • Bảng xếp hạng

    Đạt được danh dự và tiến lên bảng xếp hạng toàn cầu

  • Trò chuyện

    Tham gia máy chủ Discord của chúng tôi và trò chuyện với các chiến binh mã đồng nghiệp của bạnDiscord server and chat with your fellow code warriors

  • Thảo luận

    Xem Hội đồng Thảo luận GitHub của chúng tôi để thảo luận về các chủ đề CodeWars chungGithub Discussions board to discuss general Codewars topics

  • Về
  • Tài liệu

    Tìm hiểu về tất cả các khía cạnh khác nhau của các mã hóa

Tham lam là tốt

  • Thông tin chi tiết
  • Các giải pháp
  • Bài giảng (343)

Description:

Tải mô tả ...

Kata tương tự:

Stats:

TạoNgày 30 tháng 10 năm 2013
Được phát hànhNgày 30 tháng 10 năm 2013
Được phát hành72941
Chiến binh được đào tạo12962
Tổng số bỏ qua217008
Tổng số hồ sơ36326
Tổng số thời gian hoàn thành10975
Hoàn thành JavaScript147
Hoàn thành CoffeeScript1930
Hoàn thành Ruby3286
C# Hoàn thành11848
Hoàn thành Python4701
Hoàn thành Java2774
Hoàn thành C ++1049
C Hoàn thành68
Hoàn thành f#80
Hoàn thành Clojure4
Hoàn thành COBOL3
Hoàn thành Scala1181

Tổng số sao % phiếu bầu với xếp hạng phản hồi tích cực
89% trong số 3350 2665
Tổng số phiếu bầu "rất hài lòng" 609
Tổng số phiếu bầu "có phần hài lòng" 76