Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발계발

프로그래머스 - 주사위 게임3(181916) 본문

알고리즘

프로그래머스 - 주사위 게임3(181916)

Ju_Nik_E 2024. 4. 23. 15:01

문제 설명

 

제한사항

 

접근방식

- 딕셔너리를 이용해서 각 주사위의 숫자와 등장한 횟수를 기록

- 등장한 횟수를 정렬해서 경우의 수를 나눠서 풀이

 

풀이 코드

def solution(a, b, c, d):
    answer = 0
    dice_dic = {}
    
    for i in range(1, 7):
        dice_dic[i] = 0
    
    dice_dic[a] += 1
    dice_dic[b] += 1
    dice_dic[c] += 1
    dice_dic[d] += 1
    
    sorted_dice = sorted(dice_dic.items(), key = lambda x : x[1], reverse = True)
    print(sorted_dice)
    
    if sorted_dice[0][1] == 4:
        answer += 1111 * sorted_dice[0][0]
    elif sorted_dice[0][1] == 3:
        answer += ((10 * sorted_dice[0][0]) + sorted_dice[1][0]) ** 2
    elif sorted_dice[0][1] == 2:
        if sorted_dice[1][1] == 2:
            answer += (sorted_dice[0][0] + sorted_dice[1][0]) * abs(sorted_dice[0][0] - sorted_dice[1][0])
        else:
            answer += sorted_dice[1][0] * sorted_dice[2][0]
    else:
        answer += sorted_dice[0][0]    
    
    return answer