본문 바로가기
프로그램

[파이썬] 문제 : 주사위 3개로 n명의 참가자 중 최대값 찾기

by 오디세이99 2023. 11. 2.
728x90
반응형

주사위 던지기 게임 프로그래밍
n명의 인원이 주사위 게임을 진행한다.
- 3개의 주사위를 던져 임의의 수를 입력받는다.
- 3개의 주사의 값이 3개 모두 동일할 경우 점수는 1000* 주사위 값
- 2개의 주사위 값이 동일할 경우 점수는 500*주사위 값
- 모두 주사위 값이 동일 하지 않을 경우 100* 주사위 값 (첫번째 주사위)
n명의 참여 인원의 점수를 모두 출력하고 그중 가장 높은 값을 출력하세요.
* 사용할 라이브러리 : random
* 사용할 메소드 : random.randrange
*사용할 내장함수 : max
* 자료형 : 변수 3개(정수형), 리스트 1개

 

import random

n = int(input('참가 인원수를 입력해주세요: '))    # 인원수 입력 받기. 정수로 변환
 
scores = []                                       # 최종 결과값 변수 선언
for i in range(n):                                # 인원수 만큼 반복
    tmp = []                                      # 3개의 주사위 결과 저장용 변수 선언 
    for j in range(3):                           # 3개의 주사위 실행
        tmp.append(random.randint(1, 6))          # random.randint()로 1부터 6까지 수를 임의 생성
    score = 0                                     # 참사 인원을 점수 변수 선언 및 초기화
    if tmp[0] == tmp[1] and tmp[1] == tmp[2]:    # 3개의 주사위 값이 모두 값으면
        score = tmp[0] * 1000
    elif tmp[0] == tmp[1] and tmp[1] != tmp[2]:  # 2개의 주사위 값이 같으면(첫번째, 두번째)
        score = tmp[0] * 500                      # 첫번째 값 * 5000
    elif tmp[0] != tmp[1] and tmp[1] == tmp[2]:  # 2개의 주사위 값이 같으면(두번째, 세번째)
        score = tmp[1] * 500
    elif tmp[0] != tmp[1] and tmp[0] == tmp[2]:  #  2개의 주사위 값이 같으면(첫번째, 세번째)
        score = tmp[1] * 500
    else:
        score = tmp[0] * 100                      # 3개의 주사위가 모두 다르면 첫번째 값으로 계산
    scores.append(score)
    
print(f"참가인원수 {n} 명이며 참가한 사람의 결과값은 {scores} 입니다.")
print('가장 큰 결과값은',max(scores))

728x90
반응형

댓글