주사위 게임 코드리뷰 부탁드립니다(의문점도 있습니다)
405
한규원
작성한 질문수 12
0
#주사위 게임
'''
1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게
임이 있다.
규칙(1) 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다.
규칙(2) 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)*100원의 상금을 받게 된다.
규칙(3) 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)*100원의 상금을 받게 된다.
예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3*100으로 계산되어 1,300원을 받게 된
다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2*1,000 으로 계산되어 12,000원을 받게 된다.
3개의 눈이 6, 2, 5로 주어지면 그 중 가장 큰 값이 6이므로 6*100으로 계산되어 600원을 상금
으로 받게 된다.
N 명이 주사위 게임에 참여하였을 때, 가장 많은 상금을 받은 사람의 상금을 출력하는 프로그램
을 작성하시오
'''
import random
n = int(input("몇명에서 게임을 진행하나요: "))
numArr= [1,2,3,4,5,6] #주사위로 나올수있는 수 배열 생성
maxMoney = 0 #가장 많은 상금넣어줄 변수
for i in range(n):
temp = [] #주사위로 나온 수를 넣어줄 변수
for x in range(3):
temp.append(random.choice(numArr)) #주사위로 나올숫자를 랜덤으로 받음
temp.sort() #정렬해줌 max값 찾기 편하게
a, b, c = map(int, temp)
if a == c : #정렬 되어 있으니까 (a == c)가 같으면 (a == b and b == c) 이의미이므로 (a == c)로 구현
money = 10000 + a * 1000
elif a == b or b == c: # 정렬되어 있으므로 2가지값이 같은경우만 구현
money = 1000 + b * 100
else: # 나머지 다다른경우!
money = c * 100
if money > maxMoney:
maxMoney = money
else:
continue
print(f"가장 많이 받은 상금액수는: {maxMoney}원 입니다.")
이렇게 구현하였는데 혹시 더 좋은 방법이 있을까요?
의문점: 처음 if else 구문으로 전부다 같은경우 2가지만 같은경우 다 다른경우 구현하는 부분에서
강사님이 2가지 같은 수 구하는 구문에서 a==b or a == c 이렇게 하셨는데 정렬되어 있는 상태에서
a == c 가같은경우는 3가지가 다 같은숫자아닌가요?
ex) 2 5 3 이렇게 입력되어있어도 정렬되면 2 3 5 이렇게 되니까 a == c랑 같은경우는 2 2 2 이런경우의수밖에
없지않나요?
*항상 좋은강의 잘듣고있습니다 감사합니다.
기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.
1
104
2
스택에서 ')'을 만나는 경우
0
109
3
문제가 어디있나요?
0
86
2
변수 or 함수명
0
76
1
침몰하는 타이타닉 문제 질문입니다
0
71
1
AA.py 책점 에러
0
63
1
오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.
0
115
2
5.동전분배하기 문제 밑에코드도 정답이될까요?
0
116
1
아나그램 비교 코드
0
123
2
AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.
0
163
2
문제 링크가있나여?
0
153
2
채점기 Time Limit Exceeded 오류 문의
1
178
2
동적계획법은 사용하는 문제
0
132
2
제 코드 좀 봐주세요
0
154
1
예외가 존재할 가능성?
0
100
1
3번이 안풀립니다
0
98
0
5번 틀림
0
124
0
오류원인?
0
104
0
리스트 선언
0
115
1
침몰하는 타이타닉(그리디) 문제 질문
0
114
1
알고리즘
0
72
1
코딩테스트
0
98
1
DFS 순서 질문드립니다.
0
134
2
left, right를 사용한 풀이법에 대한 질문입니다
0
94
1





