サイコロゲーム


作成日:2022年1月8日午後9:40

インプリメンテーションコード

# 주사위 게임
import sys
sys.stdin = open("input.txt", "rt")
n = int(input())
moneySum = []

for i in range(n):
    numList = list(map(int, input().split()))
    numList.sort(reverse=True)
    if numList.count(numList[0]) == 3:
        moneySum.append(10000 + numList[0]*1000)
    elif numList.count(numList[0]) == 1 and numList.count(numList[1]) == 1 and numList.count(numList[2]) == 1:
        moneySum.append(100*numList[0])
    else:
        if numList.count(numList[0]) == 2:
            moneySum.append(1000 + numList[0]*100)
        else:
            moneySum.append(1000 + numList[1]*100)

moneySum.sort(reverse=True)
print(moneySum[0])

模範解答

import sys
sys.stdin=open("input.txt", "r")
max=0
res=0
n=int(input())
for i in range(n):
    tmp=input().split() 
    tmp.sort() 
    a, b, c=map(int, tmp)
    if a==b and b==c:
        money=10000+(a*1000);
    elif a==b or a==c:
        money=1000+(a*100)
    elif b==c:
        money=1000+(b*100)
    else:
        money=c*100
    if money > res:
        res=money

print(res)

差異

  • 模範解答ではサイコロを投げた数字をリストから近づけるのではなく,a,b,c変数にそれぞれ格納して使いやすい.
  • 私が書いたコードはサイコロの結果値をnumListという配列に格納し、必要に応じてインデックスを使用します.これにより、コードが長くなり、可読性が悪くなります.