본문 바로가기

알고리즘

파이썬) 카드게임 - BOJ

https://www.acmicpc.net/problem/2621

 

2621번: 카드게임

근우는 오늘 재미있는 카드 게임을 배우고 있다. 카드는 빨간색, 파란색, 노란색, 녹색의 네 가지 색이 있고, 색깔별로 1부터 9까지 숫자가 쓰여진 카드가 9장씩 있다. 카드는 모두 36(=4x9)장이다.

www.acmicpc.net

 

from collections import Counter
info = []

for i in range(5):
    color, num = map(str, input().split())

    info.append([color, int(num)])

info .sort(key=lambda x: x[1])
print(info)
num1 = info[0][1]
num2 = info[1][1]
num3 = info[2][1]
num4 = info[3][1]
num5 = info[4][1]
m = max(num1, num2, num3, num4, num5)

if (info[0][0] == info[1][0] == info[2][0] == info[3][0] == info[4][0]) and (abs(num3 - num1) == 2 and abs(num3 - num2) == 1 and abs(num3 - num4) == 1 and abs(num3 - num5) == 2):

    # 1
    # print('one')
    print(m + 900)


else:
    nums_arr = [num1, num2, num3, num4, num5]

    dic = Counter(nums_arr)

    arr = list(dic.items())

    arr.sort(key=lambda x: -x[1])

    # print(arr)
    if arr[0][1] >= 4:
        # 2
        # print('two')
        print(arr[0][0] + 800)

    elif arr[0][1] == 3 and arr[1][1] == 2:
        # 3
        # print('three')
        print((arr[0][0] * 10) + arr[1][0] + 700)

    elif info[0][0] == info[1][0] == info[2][0] == info[3][0] == info[4][0]:
        # 4
        # print('four')
        print(m + 600)

    elif abs(num3 - num1) == 2 and abs(num3 - num2) == 1 and abs(num3 - num4) == 1 and abs(num3 - num5) == 2:
        # 5
        # print('five')
        print(m + 500)

    elif arr[0][1] == 3:
        # 6
        # print('six')
        print(arr[0][0] + 400)

    elif arr[0][1] == 2 and arr[1][1] == 2:
        # 7
        seven_m = max(arr[0][0], arr[1][0])
        seven_min = min(arr[0][0], arr[1][0])
        # print('seven')
        print((seven_m * 10) + seven_min + 300)

    elif arr[0][1] == 2:
        # 8
        # print('eight')
        print(arr[0][0] + 200)

    else:
        # 9
        # print('nine')
        print(m + 100)

단순한 구현 문제였다.

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

파이썬) 게임을 만든 동준이 - BOJ  (0) 2023.11.06
파이썬) 0 만들기 - BOJ  (0) 2023.11.06
파이썬) 암호 만들기 - BOJ  (0) 2023.11.06
파이썬) 퇴사 -BOJ  (0) 2023.08.18
파이썬)A -> B -BOJ  (0) 2023.08.13