ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • section2.9 주사위 게임
    알고리즘 2022. 10. 25. 17:57

    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 sys
    sys.stdin = open("input.txt", "rt")
    n = int(input())
    maxPrice = -1
    
    for i in range(n):
        tmp = input().split()
        price = -1
            
        if (len(set(tmp))==1):
            price = 10000 + int(tmp[0])*1000
        elif (len(set(tmp))==2):
            if (tmp[0]==tmp[1]):
                price = 1000 + int(tmp[0])*100
            elif (tmp[1]==tmp[2]):
                price = 1000 + int(tmp[1])*100
            else:
                price = 1000 + int(tmp[2])*100
        else:
            tmp.sort(reverse=True)
            price = int(tmp[0])*100
        
        if maxPrice<price:
            maxPrice = price
    
    print(maxPrice)

     

    경우의 수만 잘 나누면 되는 문제라 어렵지 않았다.

     

    import sys
    sys.stdin = open("input.txt", "rt")
    n = int(input())
    res = 0
    
    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 + 100*a
        elif (b==c):
            money = 1000 + 100*b
        else:
            money = c*100
        
        if money > res:
            res = money
    
    print(res)

     

    map에 대해 조금 더 알아봐야겠다

    list의 원소가 str일 때 map 함수를 이용하면 저렇게 쉽게 int로 변환되는지 몰랐다

     

     

     

     

    map(function, iterable)

    첫 번째 매개변수 = 함수

    두 번째 매개변수 = 반복 가능한 자료형 (리스트, 튜플 등)

    > 자동적으로 리스트를 함수에 적용해서 map 객체를 반환한다

     

    map(람다함수, 리스트) 또한 가능하다

    간단하고 일회성이면 def를 따로 만들기보다는 map+lambda 이용

     

    mapLambda = list(map(lambda x:x+1, [5, 4, 3, 2, 1]))
    print(mapLamda)
    # [6, 5, 4, 3, 2]

     

    728x90

    '알고리즘' 카테고리의 다른 글

    section3.1 회문 문자열 검사  (1) 2022.10.25
    section2.10 점수 계산  (1) 2022.10.25
    section2.8 뒤집은 소수  (1) 2022.10.24
    section2.7 소수(에라토스테네스 체)  (0) 2022.10.24
    section2.6 자릿수의 합  (0) 2022.10.22
Designed by Tistory.