자료구조와 알고리즘/개인적인 코딩테스트 관련 풀이

주사위 게임

얄루몬 2022. 6. 30. 19:42

문제

  • n명이 3번의 주사위를 돌려 가장 큰 금액을 받는 경우의 금액을 출력해라
  • 같은 숫자 3개 나온 경우 = 10000 + (나온 숫자 * 1000)
  • 같은 숫자 2개 나온 경우 = 1000 + (같은 숫자 * 100)
  • 모두 다 다른 숫자 = 100 * (나온 수 중에 제일 큰 수)

문제풀이

import sys
sys.stdin = open("input.txt", "r")

n = int(input())
res = 0
for i in range(n):
    tmp = input().split()
    tmp.sort()

    #정렬한 문자를 숫자화 시켜서 mapping
    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:
        #다 다른 수일 때 c가 오름차순으로 정렬해서 제일 큼.
        money = c * 100
    if money>res:
        res=money

print(res)
  • 주사위 숫자를 문자열 list로 입력 받은 뒤 정렬해준다.(오름차순으로)
  • 던진 주사위 숫자를 각각의 변수로 mapping 해준다.
  • 2개가 같은 경우를 두가지 경우로 나눈 이유는 간단하다. 동일한 수가 무엇인지를 알기 위해서다.