위클리_4주차

이하연·2021년 8월 23일
0

2021알고리즘

목록 보기
17/32

프로그래머스 문제 링크


코드

def solution(table, languages, preference):
    arr = []

    for score in table:
        type = score.split(" ")[0]
        score = score.split(" ")[1:]
        score.reverse()
        sum = 0
        for languageIdx in range(len(languages)) :
            if languages[languageIdx] in score :
                idx = score.index(languages[languageIdx])+1
                sum+=(idx*preference[languageIdx])
        arr.append((sum,type))

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

    return answer

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]))
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]))

결과

핵심 포인트

다중 조건일 경우 한번에 정렬하는 방식 !!

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

0개의 댓글