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 :
로 바로 진행해서 오류가 났었다.