[알고리즘] 프로그래머스 - 4주차_직업군 추천하기

June·2021년 9월 8일
0

알고리즘

목록 보기
254/260
post-custom-banner

프로그래머스 - 4주차_직업군 추천하기

내 풀이

def solution(table, languages, preference):
    team_dict = dict()
    for team in table:
        team = team.split(" ")
        team_dict[team[0]] = dict()
        for i in range(5):
            team_dict[team[0]][team[i+1]] = 5 - i

    result_dict = dict()
    for team in team_dict.keys():
        tmp_sum = 0
        for i in range(len(languages)):
            if languages[i] in team_dict[team]:
                tmp_sum += team_dict[team][languages[i]] * preference[i]
        result_dict[team] = tmp_sum
    ans_dict = {k:v for k, v in sorted(result_dict.items(), key = lambda x : (-x[1], x[0]))}
    return list(ans_dict.keys())[0]

print(solution(["SI JAVA JAVASCRIPT SQL PYTHON C#", "CONTENTS JAVASCRIPT JAVA PYTHON SQL C++", "HARDWARE C C++ PYTHON JAVA JAVASCRIPT", "PORTAL JAVA JAVASCRIPT PYTHON KOTLIN PHP", "GAME C++ C# JAVASCRIPT C JAVA"],
               ["PYTHON", "C++", "SQL"],[7, 5, 5]) == "HARDWARE")
print(solution(["SI JAVA JAVASCRIPT SQL PYTHON C#", "CONTENTS JAVASCRIPT JAVA PYTHON SQL C++", "HARDWARE C C++ PYTHON JAVA JAVASCRIPT", "PORTAL JAVA JAVASCRIPT PYTHON KOTLIN PHP", "GAME C++ C# JAVASCRIPT C JAVA"],
               ["JAVA", "JAVASCRIPT"], [7, 5]) == "PORTAL")

오랜만에 딕셔너리의 value가 또 다른 dictionary인 형태를 사용한 풀이를 진행했다.

특별할 것은 없었고, value를 기준으로 다시 딕셔너리를 정렬하는 것을 거의 다 기억했는데, key = 을 빼먹고 lambda x :로 바로 진행해서 오류가 났었다.

post-custom-banner

0개의 댓글