본문 바로가기
Programmers

[프로그래머스]주사위게임3 value의 최대값으로 key값 구하기

by 딸기뚜왈기 2024. 1. 22.

https://school.programmers.co.kr/learn/courses/30/lessons/181916

def solution(a, b, c, d):
    alpha = [a, b, c, d]
    alpha_cnt = {}
    for i in alpha:     
        alpha_cnt[i] = alpha.count(i)
    max_keys = max(alpha_cnt, key = alpha_cnt.get) # 1 : 3, 4 : 1  ,1 : 3, 1 : 3  
    min_keys = min(alpha_cnt, key = alpha_cnt.get)
    if alpha_cnt[max_keys] == 4:
        return 1111 * max_keys 
    elif alpha_cnt[max_keys] == 3:
        return (10 * max_keys + min_keys) ** 2
    elif alpha_cnt[max_keys] == 2:
        if alpha_cnt[min_keys] == 2:
            return (sorted(alpha)[0] + sorted(alpha)[-1]) * (sorted(alpha)[-1] - sorted(alpha)[0]) 
        else:
            return sorted(alpha_cnt, key = lambda x:alpha_cnt[x])[0]* sorted(alpha_cnt , key = lambda x:alpha_cnt[x])[1]
            
    else:
        return sorted(alpha)[0]

 

https://dogsavestheworld.tistory.com/110

#value값을 기준으로 오름차순 정렬한 딕셔너리 생성하기.

 

# value 값을 기준으로 오름차순 정렬하여 (k, v) 리스트 반환

print(sorted(dic.items(), key=lambda x:x[1]))

-> [ ('c', 1), ('a', 2),('b', 4)]

 

# 위 값을 딕셔너리로 변환

print(dict(sorted(dic.items(), key=lambda x:x[1])))

-> {'c': 1, 'a': 2, 'b': 4}

 

# value 값을 기준으로 오름차순 정렬

print(sorted(dic,key=lambda x:dic[x]))

-> ['c', 'a', 'b']

def solution(a, b, c, d):
    l = [a,b,c,d]
    c = [l.count(x) for x in l]
    if max(c) == 4:
        return 1111*a
    elif max(c) == 3:
        return (10*l[c.index(3)]+l[c.index(1)])**2
    elif max(c) == 2:
        if min(c) == 1:
            return eval('*'.join([str(l[i]) for i, x in enumerate(c) if x == 1]))
        else:
            return (max(l) + min(l)) * abs(max(l) - min(l))
    else:
        return min(l)

https://velog.io/@haileeyu21/TIL-Dictionary-%EB%82%B4%EB%B6%80%EC%97%90%EC%84%9C-value%EA%B0%80-%EA%B0%80%EC%9E%A5-%ED%81%B0-%EA%B2%83-%EC%B0%BE%EA%B8%B0

 

dictionary = {'a' : 2, 'b' : 4, 'c' : 1}

 

max_key = max(dictionary, key = dictionay.get)

 

print(max_key)

-> b